func endpointsForHostname(hostname string, targets endpoint.Targets, ttl endpoint.TTL, providerSpecific endpoint.ProviderSpecific) []*endpoint.Endpoint {
	var endpoints []*endpoint.Endpoint

	var aTargets endpoint.Targets
	var cnameTargets endpoint.Targets

	for _, t := range targets {
		switch suitableType(t) {
		case endpoint.RecordTypeA:
			aTargets = append(aTargets, t)
		default:
			cnameTargets = append(cnameTargets, t)
		}
	}

	if len(aTargets) > 0 {
		epA := &endpoint.Endpoint{
			DNSName:          strings.TrimSuffix(hostname, "."),
			Targets:          aTargets,
			RecordTTL:        ttl,
			RecordType:       endpoint.RecordTypeA,
			Labels:           endpoint.NewLabels(),
			ProviderSpecific: providerSpecific,
		}
		endpoints = append(endpoints, epA)
	}

	if len(cnameTargets) > 0 {
		epCNAME := &endpoint.Endpoint{
			DNSName:          strings.TrimSuffix(hostname, "."),
			Targets:          cnameTargets,
			RecordTTL:        ttl,
			RecordType:       endpoint.RecordTypeCNAME,
			Labels:           endpoint.NewLabels(),
			ProviderSpecific: providerSpecific,
		}
		endpoints = append(endpoints, epCNAME)
	}

	return endpoints
}
func endpointsForHostname(hostname string, targets endpoint.Targets, ttl endpoint.TTL, providerSpecific endpoint.ProviderSpecific) []*endpoint.Endpoint {
	var endpoints []*endpoint.Endpoint

	var aTargets endpoint.Targets
	var cnameTargets endpoint.Targets

	for _, t := range targets {
		switch suitableType(t) {
		case endpoint.RecordTypeA:
			aTargets = append(aTargets, t)
		default:
			cnameTargets = append(cnameTargets, t)
		}
	}

	if len(aTargets) > 0 {
		epA := &endpoint.Endpoint{
			DNSName:          strings.TrimSuffix(hostname, "."),
			Targets:          aTargets,
			RecordTTL:        ttl,
			RecordType:       endpoint.RecordTypeA,
			Labels:           endpoint.NewLabels(),
			ProviderSpecific: providerSpecific,
		}
		endpoints = append(endpoints, epA)
	}

	if len(cnameTargets) > 0 {
		epCNAME := &endpoint.Endpoint{
			DNSName:          strings.TrimSuffix(hostname, "."),
			Targets:          cnameTargets,
			RecordTTL:        ttl,
			RecordType:       endpoint.RecordTypeCNAME,
			Labels:           endpoint.NewLabels(),
			ProviderSpecific: providerSpecific,
		}
		endpoints = append(endpoints, epCNAME)
	}

	return endpoints
}
func endpointsForHostname ( hostname string , targets endpoint . Targets , ttl endpoint . TTL , providerSpecific endpoint . ProviderSpecific ) [ ] * endpoint . Endpoint { var endpoints [ ] * endpoint . Endpoint var aTargets endpoint . Targets var cnameTargets endpoint . Targets for _ , t := range targets { switch suitableType ( t ) { case endpoint . RecordTypeA : aTargets = append ( aTargets , t ) default : cnameTargets = append ( cnameTargets , t ) } } if len ( aTargets ) > 0 { epA := & endpoint . Endpoint { DNSName : strings . TrimSuffix ( hostname , " " ) , Targets : aTargets , RecordTTL : ttl , RecordType : endpoint . RecordTypeA , Labels : endpoint . NewLabels ( ) , ProviderSpecific : providerSpecific , } endpoints = append ( endpoints , epA ) } if len ( cnameTargets ) > 0 { epCNAME := & endpoint . Endpoint { DNSName : strings . TrimSuffix ( hostname , " " ) , Targets : cnameTargets , RecordTTL : ttl , RecordType : endpoint . RecordTypeCNAME , Labels : endpoint . NewLabels ( ) , ProviderSpecific : providerSpecific , } endpoints = append ( endpoints , epCNAME ) } return endpoints }
// endpointsForHostname returns the endpoint objects for each host-target combination.
endpointsForHostname returns the endpoint objects for each host - target combination .