code: func (d *DNSProvider) getHostedZoneID(fqdn string) (int, error) {
  	authZone, err := dns01.FindZoneByFqdn(fqdn)
  	if err != nil {
  		return 0, err
  	}
  
  	result, err := d.makeRequest(http.MethodGet, fmt.Sprintf("/domains?name=%s", dns01.UnFqdn(authZone)), nil)
  	if err != nil {
  		return 0, err
  	}
  
  	var zoneSearchResponse ZoneSearchResponse
  	err = json.Unmarshal(result, &zoneSearchResponse)
  	if err != nil {
  		return 0, err
  	}
  
  	// If nothing was returned, or for whatever reason more than 1 was returned (the search uses exact match, so should not occur)
  	if zoneSearchResponse.TotalEntries != 1 {
  		return 0, fmt.Errorf("found %d zones for %s in Rackspace for domain %s", zoneSearchResponse.TotalEntries, authZone, fqdn)
  	}
  
  	return zoneSearchResponse.HostedZones[0].ID, nil
  }
docs: // getHostedZoneID performs a lookup to get the DNS zone which needs
  // modifying for a given FQDN