code: func suitableZones(hostname string, zones map[string]*route53.HostedZone) []*route53.HostedZone {
  	var matchingZones []*route53.HostedZone
  	var publicZone *route53.HostedZone
  
  	for _, z := range zones {
  		if aws.StringValue(z.Name) == hostname || strings.HasSuffix(hostname, "."+aws.StringValue(z.Name)) {
  			if z.Config == nil || !aws.BoolValue(z.Config.PrivateZone) {
  				// Only select the best matching public zone
  				if publicZone == nil || len(aws.StringValue(z.Name)) > len(aws.StringValue(publicZone.Name)) {
  					publicZone = z
  				}
  			} else {
  				// Include all private zones
  				matchingZones = append(matchingZones, z)
  			}
  		}
  	}
  
  	if publicZone != nil {
  		matchingZones = append(matchingZones, publicZone)
  	}
  
  	return matchingZones
  }
docs: // suitableZones returns all suitable private zones and the most suitable public zone
  //   for a given hostname and a set of zones.