code: func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
  	if config == nil {
  		return nil, errors.New("linodev4: the configuration of the DNS provider is nil")
  	}
  
  	if len(config.Token) == 0 {
  		return nil, errors.New("linodev4: Linode Access Token missing")
  	}
  
  	if config.TTL < minTTL {
  		return nil, fmt.Errorf("linodev4: invalid TTL, TTL (%d) must be greater than %d", config.TTL, minTTL)
  	}
  
  	tokenSource := oauth2.StaticTokenSource(&oauth2.Token{AccessToken: config.Token})
  	oauth2Client := &http.Client{
  		Timeout: config.HTTPTimeout,
  		Transport: &oauth2.Transport{
  			Source: tokenSource,
  		},
  	}
  
  	client := linodego.NewClient(oauth2Client)
  	client.SetUserAgent(fmt.Sprintf("lego-dns linodego/%s", linodego.Version))
  
  	return &DNSProvider{
  		config: config,
  		client: &client,
  	}, nil
  }
docs: // NewDNSProviderConfig return a DNSProvider instance configured for Linode.