code: func NewGoogleProvider(project string, domainFilter DomainFilter, zoneIDFilter ZoneIDFilter, dryRun bool) (*GoogleProvider, error) {
  	gcloud, err := google.DefaultClient(context.TODO(), dns.NdevClouddnsReadwriteScope)
  	if err != nil {
  		return nil, err
  	}
  
  	gcloud = instrumented_http.NewClient(gcloud, &instrumented_http.Callbacks{
  		PathProcessor: func(path string) string {
  			parts := strings.Split(path, "/")
  			return parts[len(parts)-1]
  		},
  	})
  
  	dnsClient, err := dns.New(gcloud)
  	if err != nil {
  		return nil, err
  	}
  
  	if project == "" {
  		mProject, mErr := metadata.ProjectID()
  		if mErr == nil {
  			log.Infof("Google project auto-detected: %s", mProject)
  			project = mProject
  		}
  	}
  
  	provider := &GoogleProvider{
  		project:                  project,
  		dryRun:                   dryRun,
  		domainFilter:             domainFilter,
  		zoneIDFilter:             zoneIDFilter,
  		resourceRecordSetsClient: resourceRecordSetsService{dnsClient.ResourceRecordSets},
  		managedZonesClient:       managedZonesService{dnsClient.ManagedZones},
  		changesClient:            changesService{dnsClient.Changes},
  	}
  
  	return provider, nil
  }
docs: // NewGoogleProvider initializes a new Google CloudDNS based Provider.