Documentation

Overview

    Package stackpath implements a DNS provider for solving the DNS-01 challenge using Stackpath DNS. https://developer.stackpath.com/en/api/dns/

    Index

    Constants

    View Source
    const (
    	EnvClientID     = envNamespace + "CLIENT_ID"
    	EnvClientSecret = envNamespace + "CLIENT_SECRET"
    	EnvStackID      = envNamespace + "STACK_ID"
    
    	EnvTTL                = envNamespace + "TTL"
    	EnvPropagationTimeout = envNamespace + "PROPAGATION_TIMEOUT"
    	EnvPollingInterval    = envNamespace + "POLLING_INTERVAL"
    )

      Environment variables names.

      Variables

      This section is empty.

      Functions

      This section is empty.

      Types

      type Config

      type Config struct {
      	ClientID           string
      	ClientSecret       string
      	StackID            string
      	TTL                int
      	PropagationTimeout time.Duration
      	PollingInterval    time.Duration
      }

        Config is used to configure the creation of the DNSProvider.

        func NewDefaultConfig

        func NewDefaultConfig() *Config

          NewDefaultConfig returns a default configuration for the DNSProvider.

          type DNSProvider

          type DNSProvider struct {
          	BaseURL *url.URL
          	// contains filtered or unexported fields
          }

            DNSProvider implements the challenge.Provider interface.

            func NewDNSProvider

            func NewDNSProvider() (*DNSProvider, error)

              NewDNSProvider returns a DNSProvider instance configured for Stackpath. Credentials must be passed in the environment variables: STACKPATH_CLIENT_ID, STACKPATH_CLIENT_SECRET, and STACKPATH_STACK_ID.

              func NewDNSProviderConfig

              func NewDNSProviderConfig(config *Config) (*DNSProvider, error)

                NewDNSProviderConfig return a DNSProvider instance configured for Stackpath.

                func (*DNSProvider) CleanUp

                func (d *DNSProvider) CleanUp(domain, token, keyAuth string) error

                  CleanUp removes the TXT record matching the specified parameters.

                  func (*DNSProvider) Present

                  func (d *DNSProvider) Present(domain, token, keyAuth string) error

                    Present creates a TXT record to fulfill the dns-01 challenge.

                    func (*DNSProvider) Timeout

                    func (d *DNSProvider) Timeout() (timeout, interval time.Duration)

                      Timeout returns the timeout and interval to use when checking for DNS propagation. Adjusting here to cope with spikes in propagation times.

                      type ErrorResponse

                      type ErrorResponse struct {
                      	Code    int    `json:"code"`
                      	Message string `json:"error"`
                      }

                        ErrorResponse the API error response representation.

                        func (*ErrorResponse) Error

                        func (e *ErrorResponse) Error() string

                        type Record

                        type Record struct {
                        	ID   string `json:"id,omitempty"`
                        	Name string `json:"name"`
                        	Type string `json:"type"`
                        	TTL  int    `json:"ttl"`
                        	Data string `json:"data"`
                        }

                          Record a DNS record representation.

                          type Records

                          type Records struct {
                          	Records []Record `json:"records"`
                          }

                            Records is the response struct from the Stackpath api GetZoneRecords.

                            type Zone

                            type Zone struct {
                            	ID     string
                            	Domain string
                            }

                              Zone a DNS zone representation.

                              type Zones

                              type Zones struct {
                              	Zones []Zone `json:"zones"`
                              }

                                Zones is the response struct from the Stackpath api GetZones.