code: func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
  	if config == nil {
  		return nil, errors.New("designate: the configuration of the DNS provider is nil")
  	}
  
  	provider, err := openstack.AuthenticatedClient(config.opts)
  	if err != nil {
  		return nil, fmt.Errorf("designate: failed to authenticate: %v", err)
  	}
  
  	dnsClient, err := openstack.NewDNSV2(provider, gophercloud.EndpointOpts{
  		Region: os.Getenv("OS_REGION_NAME"),
  	})
  	if err != nil {
  		return nil, fmt.Errorf("designate: failed to get DNS provider: %v", err)
  	}
  
  	return &DNSProvider{client: dnsClient, config: config}, nil
  }
docs: // NewDNSProviderConfig return a DNSProvider instance configured for Designate.