package protocol

import (
	

	
	
)
HostPrefixHandlerName is the handler name for the host prefix request handler.
const HostPrefixHandlerName = "awssdk.endpoint.HostPrefixHandler"
NewHostPrefixHandler constructs a build handler
func ( string,  func() map[string]string) request.NamedHandler {
	 := HostPrefixBuilder{
		Prefix:   ,
		LabelsFn: ,
	}

	return request.NamedHandler{
		Name: HostPrefixHandlerName,
		Fn:   .Build,
	}
}
HostPrefixBuilder provides the request handler to expand and prepend the host prefix into the operation's request endpoint host.
type HostPrefixBuilder struct {
	Prefix   string
	LabelsFn func() map[string]string
}
Build updates the passed in Request with the HostPrefix template expanded.
func ( HostPrefixBuilder) ( *request.Request) {
	if aws.BoolValue(.Config.DisableEndpointHostPrefix) {
		return
	}

	var  map[string]string
	if .LabelsFn != nil {
		 = .LabelsFn()
	}

	 := .Prefix
	for ,  := range  {
		 = strings.Replace(, "{"++"}", , -1)
	}

	.HTTPRequest.URL.Host =  + .HTTPRequest.URL.Host
	if len(.HTTPRequest.Host) > 0 {
		.HTTPRequest.Host =  + .HTTPRequest.Host
	}