code: func NewExoscaleProviderWithClient(endpoint, apiKey, apiSecret string, client EgoscaleClientI, dryRun bool, opts ...ExoscaleOption) *ExoscaleProvider {
  	ep := &ExoscaleProvider{
  		filter:         &zoneFilter{},
  		OnApplyChanges: func(changes *plan.Changes) {},
  		domain:         NewDomainFilter([]string{""}),
  		client:         client,
  		dryRun:         dryRun,
  	}
  	for _, opt := range opts {
  		opt(ep)
  	}
  	return ep
  }
docs: // NewExoscaleProviderWithClient returns ExoscaleProvider DNS provider interface implementation (Client provided)