in service/cloudfrontkeyvaluestore/endpoints.go [311:559]
func (r *resolver) ResolveEndpoint(
ctx context.Context, params EndpointParameters,
) (
endpoint smithyendpoints.Endpoint, err error,
) {
params = params.WithDefaults()
if err = params.ValidateRequired(); err != nil {
return endpoint, fmt.Errorf("endpoint parameters are not valid, %w", err)
}
_UseFIPS := *params.UseFIPS
if _UseFIPS == false {
if exprVal := params.KvsARN; exprVal != nil {
_KvsARN := *exprVal
_ = _KvsARN
if exprVal := awsrulesfn.ParseARN(_KvsARN); exprVal != nil {
_parsedArn := *exprVal
_ = _parsedArn
if _parsedArn.Service == "cloudfront" {
if _parsedArn.Region == "" {
if exprVal := _parsedArn.ResourceId.Get(0); exprVal != nil {
_arnType := *exprVal
_ = _arnType
if !(_arnType == "") {
if _arnType == "key-value-store" {
if _parsedArn.Partition == "aws" {
if exprVal := params.Region; exprVal != nil {
_Region := *exprVal
_ = _Region
if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil {
_partitionResult := *exprVal
_ = _partitionResult
if _partitionResult.Name == _parsedArn.Partition {
if exprVal := params.Endpoint; exprVal != nil {
_Endpoint := *exprVal
_ = _Endpoint
if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil {
_url := *exprVal
_ = _url
uriString := func() string {
var out strings.Builder
out.WriteString(_url.Scheme)
out.WriteString("://")
out.WriteString(_parsedArn.AccountId)
out.WriteString(".")
out.WriteString(_url.Authority)
out.WriteString(_url.Path)
return out.String()
}()
uri, err := url.Parse(uriString)
if err != nil {
return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
}
return smithyendpoints.Endpoint{
URI: *uri,
Headers: http.Header{},
Properties: func() smithy.Properties {
var out smithy.Properties
smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
{
SchemeID: "aws.auth#sigv4a",
SignerProperties: func() smithy.Properties {
var sp smithy.Properties
smithyhttp.SetSigV4SigningName(&sp, "cloudfront-keyvaluestore")
smithyhttp.SetSigV4ASigningName(&sp, "cloudfront-keyvaluestore")
smithyhttp.SetSigV4ASigningRegions(&sp, []string{"*"})
return sp
}(),
},
})
return out
}(),
}, nil
}
return endpoint, fmt.Errorf("endpoint rule error, %s", "Provided endpoint is not a valid URL")
}
uriString := func() string {
var out strings.Builder
out.WriteString("https://")
out.WriteString(_parsedArn.AccountId)
out.WriteString(".cloudfront-kvs.global.api.aws")
return out.String()
}()
uri, err := url.Parse(uriString)
if err != nil {
return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
}
return smithyendpoints.Endpoint{
URI: *uri,
Headers: http.Header{},
Properties: func() smithy.Properties {
var out smithy.Properties
smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
{
SchemeID: "aws.auth#sigv4a",
SignerProperties: func() smithy.Properties {
var sp smithy.Properties
smithyhttp.SetSigV4SigningName(&sp, "cloudfront-keyvaluestore")
smithyhttp.SetSigV4ASigningName(&sp, "cloudfront-keyvaluestore")
smithyhttp.SetSigV4ASigningRegions(&sp, []string{"*"})
return sp
}(),
},
})
return out
}(),
}, nil
}
return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
var out strings.Builder
out.WriteString("Client was configured for partition `")
out.WriteString(_partitionResult.Name)
out.WriteString("` but Kvs ARN has `")
out.WriteString(_parsedArn.Partition)
out.WriteString("`")
return out.String()
}())
}
return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.")
}
if exprVal := params.Endpoint; exprVal != nil {
_Endpoint := *exprVal
_ = _Endpoint
if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil {
_url := *exprVal
_ = _url
uriString := func() string {
var out strings.Builder
out.WriteString(_url.Scheme)
out.WriteString("://")
out.WriteString(_parsedArn.AccountId)
out.WriteString(".")
out.WriteString(_url.Authority)
out.WriteString(_url.Path)
return out.String()
}()
uri, err := url.Parse(uriString)
if err != nil {
return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
}
return smithyendpoints.Endpoint{
URI: *uri,
Headers: http.Header{},
Properties: func() smithy.Properties {
var out smithy.Properties
smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
{
SchemeID: "aws.auth#sigv4a",
SignerProperties: func() smithy.Properties {
var sp smithy.Properties
smithyhttp.SetSigV4SigningName(&sp, "cloudfront-keyvaluestore")
smithyhttp.SetSigV4ASigningName(&sp, "cloudfront-keyvaluestore")
smithyhttp.SetSigV4ASigningRegions(&sp, []string{"*"})
return sp
}(),
},
})
return out
}(),
}, nil
}
return endpoint, fmt.Errorf("endpoint rule error, %s", "Provided endpoint is not a valid URL")
}
uriString := func() string {
var out strings.Builder
out.WriteString("https://")
out.WriteString(_parsedArn.AccountId)
out.WriteString(".cloudfront-kvs.global.api.aws")
return out.String()
}()
uri, err := url.Parse(uriString)
if err != nil {
return endpoint, fmt.Errorf("Failed to parse uri: %s", uriString)
}
return smithyendpoints.Endpoint{
URI: *uri,
Headers: http.Header{},
Properties: func() smithy.Properties {
var out smithy.Properties
smithyauth.SetAuthOptions(&out, []*smithyauth.Option{
{
SchemeID: "aws.auth#sigv4a",
SignerProperties: func() smithy.Properties {
var sp smithy.Properties
smithyhttp.SetSigV4SigningName(&sp, "cloudfront-keyvaluestore")
smithyhttp.SetSigV4ASigningName(&sp, "cloudfront-keyvaluestore")
smithyhttp.SetSigV4ASigningRegions(&sp, []string{"*"})
return sp
}(),
},
})
return out
}(),
}, nil
}
return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
var out strings.Builder
out.WriteString("CloudFront-KeyValueStore is not supported in partition `")
out.WriteString(_parsedArn.Partition)
out.WriteString("`")
return out.String()
}())
}
return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
var out strings.Builder
out.WriteString("ARN resource type is invalid. Expected `key-value-store`, found: `")
out.WriteString(_arnType)
out.WriteString("`")
return out.String()
}())
}
return endpoint, fmt.Errorf("endpoint rule error, %s", "No resource type found in the KVS ARN. Resource type must be `key-value-store`.")
}
return endpoint, fmt.Errorf("endpoint rule error, %s", "No resource type found in the KVS ARN. Resource type must be `key-value-store`.")
}
return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
var out strings.Builder
out.WriteString("Provided ARN must be a global resource ARN. Found: `")
out.WriteString(_parsedArn.Region)
out.WriteString("`")
return out.String()
}())
}
return endpoint, fmt.Errorf("endpoint rule error, %s", func() string {
var out strings.Builder
out.WriteString("Provided ARN is not a valid CloudFront Service ARN. Found: `")
out.WriteString(_parsedArn.Service)
out.WriteString("`")
return out.String()
}())
}
return endpoint, fmt.Errorf("endpoint rule error, %s", "KVS ARN must be a valid ARN")
}
return endpoint, fmt.Errorf("endpoint rule error, %s", "KVS ARN must be provided to use this service")
}
return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid Configuration: FIPS is not supported with CloudFront-KeyValueStore.")
}