code: func NewDNSProviderConfig(config *Config) (*DNSProvider, error) {
  	if config == nil {
  		return nil, errors.New("azure: the configuration of the DNS provider is nil")
  	}
  
  	if config.HTTPClient == nil {
  		config.HTTPClient = http.DefaultClient
  	}
  
  	authorizer, err := getAuthorizer(config)
  	if err != nil {
  		return nil, err
  	}
  
  	if config.SubscriptionID == "" {
  		subsID, err := getMetadata(config, "subscriptionId")
  		if err != nil {
  			return nil, fmt.Errorf("azure: %v", err)
  		}
  
  		if subsID == "" {
  			return nil, errors.New("azure: SubscriptionID is missing")
  		}
  		config.SubscriptionID = subsID
  	}
  
  	if config.ResourceGroup == "" {
  		resGroup, err := getMetadata(config, "resourceGroupName")
  		if err != nil {
  			return nil, fmt.Errorf("azure: %v", err)
  		}
  
  		if resGroup == "" {
  			return nil, errors.New("azure: ResourceGroup is missing")
  		}
  		config.ResourceGroup = resGroup
  	}
  
  	return &DNSProvider{config: config, authorizer: authorizer}, nil
  }
docs: // NewDNSProviderConfig return a DNSProvider instance configured for Azure.