func()

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.")
}