code: func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
  	if config == nil {
  		return nil, errors.New("otc: the configuration of the DNS provider is nil")
  	}
  
  	if config.DomainName == "" || config.UserName == "" || config.Password == "" || config.ProjectName == "" {
  		return nil, fmt.Errorf("otc: credentials missing")
  	}
  
  	if config.TTL < minTTL {
  		return nil, fmt.Errorf("otc: invalid TTL, TTL (%d) must be greater than %d", config.TTL, minTTL)
  	}
  
  	if config.IdentityEndpoint == "" {
  		config.IdentityEndpoint = defaultIdentityEndpoint
  	}
  
  	return &DNSProvider{config: config}, nil
  }
docs: // NewDNSProviderConfig return a DNSProvider instance configured for OTC DNS.