// Code generated by smithy-go-codegen DO NOT EDIT. package s3 import ( "context" "errors" "fmt" "github.com/aws/aws-sdk-go-v2/aws" awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" internalConfig "github.com/aws/aws-sdk-go-v2/internal/configsources" internalcontext "github.com/aws/aws-sdk-go-v2/internal/context" "github.com/aws/aws-sdk-go-v2/internal/endpoints" "github.com/aws/aws-sdk-go-v2/internal/endpoints/awsrulesfn" s3cust "github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations" internalendpoints "github.com/aws/aws-sdk-go-v2/service/s3/internal/endpoints" smithy "github.com/aws/smithy-go" smithyauth "github.com/aws/smithy-go/auth" smithyendpoints "github.com/aws/smithy-go/endpoints" "github.com/aws/smithy-go/endpoints/private/rulesfn" "github.com/aws/smithy-go/middleware" "github.com/aws/smithy-go/ptr" smithyhttp "github.com/aws/smithy-go/transport/http" "net/http" "net/url" "os" "strings" ) // EndpointResolverOptions is the service endpoint resolver options type EndpointResolverOptions = internalendpoints.Options // EndpointResolver interface for resolving service endpoints. type EndpointResolver interface { ResolveEndpoint(region string, options EndpointResolverOptions) (aws.Endpoint, error) } var _ EndpointResolver = &internalendpoints.Resolver{} // NewDefaultEndpointResolver constructs a new service endpoint resolver func NewDefaultEndpointResolver() *internalendpoints.Resolver { return internalendpoints.New() } // EndpointResolverFunc is a helper utility that wraps a function so it satisfies // the EndpointResolver interface. This is useful when you want to add additional // endpoint resolving logic, or stub out specific endpoints with custom values. type EndpointResolverFunc func(region string, options EndpointResolverOptions) (aws.Endpoint, error) func (fn EndpointResolverFunc) ResolveEndpoint(region string, options EndpointResolverOptions) (endpoint aws.Endpoint, err error) { return fn(region, options) } // EndpointResolverFromURL returns an EndpointResolver configured using the // provided endpoint url. By default, the resolved endpoint resolver uses the // client region as signing region, and the endpoint source is set to // EndpointSourceCustom.You can provide functional options to configure endpoint // values for the resolved endpoint. func EndpointResolverFromURL(url string, optFns ...func(*aws.Endpoint)) EndpointResolver { e := aws.Endpoint{URL: url, Source: aws.EndpointSourceCustom} for _, fn := range optFns { fn(&e) } return EndpointResolverFunc( func(region string, options EndpointResolverOptions) (aws.Endpoint, error) { if len(e.SigningRegion) == 0 { e.SigningRegion = region } return e, nil }, ) } type ResolveEndpoint struct { Resolver EndpointResolver Options EndpointResolverOptions } func (*ResolveEndpoint) ID() string { return "ResolveEndpoint" } func (m *ResolveEndpoint) HandleSerialize(ctx context.Context, in middleware.SerializeInput, next middleware.SerializeHandler) ( out middleware.SerializeOutput, metadata middleware.Metadata, err error, ) { if !awsmiddleware.GetRequiresLegacyEndpoints(ctx) { return next.HandleSerialize(ctx, in) } req, ok := in.Request.(*smithyhttp.Request) if !ok { return out, metadata, fmt.Errorf("unknown transport type %T", in.Request) } if m.Resolver == nil { return out, metadata, fmt.Errorf("expected endpoint resolver to not be nil") } eo := m.Options eo.Logger = middleware.GetLogger(ctx) var endpoint aws.Endpoint endpoint, err = m.Resolver.ResolveEndpoint(awsmiddleware.GetRegion(ctx), eo) if err != nil { nf := (&aws.EndpointNotFoundError{}) if errors.As(err, &nf) { ctx = awsmiddleware.SetRequiresLegacyEndpoints(ctx, false) return next.HandleSerialize(ctx, in) } return out, metadata, fmt.Errorf("failed to resolve service endpoint, %w", err) } req.URL, err = url.Parse(endpoint.URL) if err != nil { return out, metadata, fmt.Errorf("failed to parse endpoint URL: %w", err) } if len(awsmiddleware.GetSigningName(ctx)) == 0 { signingName := endpoint.SigningName if len(signingName) == 0 { signingName = "s3" } ctx = awsmiddleware.SetSigningName(ctx, signingName) } ctx = awsmiddleware.SetEndpointSource(ctx, endpoint.Source) ctx = smithyhttp.SetHostnameImmutable(ctx, endpoint.HostnameImmutable) ctx = awsmiddleware.SetSigningRegion(ctx, endpoint.SigningRegion) ctx = awsmiddleware.SetPartitionID(ctx, endpoint.PartitionID) return next.HandleSerialize(ctx, in) } func addResolveEndpointMiddleware(stack *middleware.Stack, o Options) error { return stack.Serialize.Insert(&ResolveEndpoint{ Resolver: o.EndpointResolver, Options: o.EndpointOptions, }, "OperationSerializer", middleware.Before) } func removeResolveEndpointMiddleware(stack *middleware.Stack) error { _, err := stack.Serialize.Remove((&ResolveEndpoint{}).ID()) return err } type wrappedEndpointResolver struct { awsResolver aws.EndpointResolverWithOptions } func (w *wrappedEndpointResolver) ResolveEndpoint(region string, options EndpointResolverOptions) (endpoint aws.Endpoint, err error) { return w.awsResolver.ResolveEndpoint(ServiceID, region, options) } type awsEndpointResolverAdaptor func(service, region string) (aws.Endpoint, error) func (a awsEndpointResolverAdaptor) ResolveEndpoint(service, region string, options ...interface{}) (aws.Endpoint, error) { return a(service, region) } var _ aws.EndpointResolverWithOptions = awsEndpointResolverAdaptor(nil) // withEndpointResolver returns an aws.EndpointResolverWithOptions that first delegates endpoint resolution to the awsResolver. // If awsResolver returns aws.EndpointNotFoundError error, the v1 resolver middleware will swallow the error, // and set an appropriate context flag such that fallback will occur when EndpointResolverV2 is invoked // via its middleware. // // If another error (besides aws.EndpointNotFoundError) is returned, then that error will be propagated. func withEndpointResolver(awsResolver aws.EndpointResolver, awsResolverWithOptions aws.EndpointResolverWithOptions) EndpointResolver { var resolver aws.EndpointResolverWithOptions if awsResolverWithOptions != nil { resolver = awsResolverWithOptions } else if awsResolver != nil { resolver = awsEndpointResolverAdaptor(awsResolver.ResolveEndpoint) } return &wrappedEndpointResolver{ awsResolver: resolver, } } func finalizeClientEndpointResolverOptions(options *Options) { options.EndpointOptions.LogDeprecated = options.ClientLogMode.IsDeprecatedUsage() if len(options.EndpointOptions.ResolvedRegion) == 0 { const fipsInfix = "-fips-" const fipsPrefix = "fips-" const fipsSuffix = "-fips" if strings.Contains(options.Region, fipsInfix) || strings.Contains(options.Region, fipsPrefix) || strings.Contains(options.Region, fipsSuffix) { options.EndpointOptions.ResolvedRegion = strings.ReplaceAll(strings.ReplaceAll(strings.ReplaceAll( options.Region, fipsInfix, "-"), fipsPrefix, ""), fipsSuffix, "") options.EndpointOptions.UseFIPSEndpoint = aws.FIPSEndpointStateEnabled } } if options.EndpointOptions.UseDualStackEndpoint == aws.DualStackEndpointStateUnset { if options.UseDualstack { options.EndpointOptions.UseDualStackEndpoint = aws.DualStackEndpointStateEnabled } else { options.EndpointOptions.UseDualStackEndpoint = aws.DualStackEndpointStateDisabled } } } func resolveEndpointResolverV2(options *Options) { if options.EndpointResolverV2 == nil { options.EndpointResolverV2 = NewDefaultEndpointResolverV2() } } func resolveBaseEndpoint(cfg aws.Config, o *Options) { if cfg.BaseEndpoint != nil { o.BaseEndpoint = cfg.BaseEndpoint } _, g := os.LookupEnv("AWS_ENDPOINT_URL") _, s := os.LookupEnv("AWS_ENDPOINT_URL_S3") if g && !s { return } value, found, err := internalConfig.ResolveServiceBaseEndpoint(context.Background(), "S3", cfg.ConfigSources) if found && err == nil { o.BaseEndpoint = &value } } func bindRegion(region string) *string { if region == "" { return nil } return aws.String(endpoints.MapFIPSRegion(region)) } // EndpointParameters provides the parameters that influence how endpoints are // resolved. type EndpointParameters struct { // The S3 bucket used to send the request. This is an optional parameter that will // be set automatically for operations that are scoped to an S3 bucket. // // Parameter // is required. Bucket *string // The AWS region used to dispatch the request. // // Parameter is // required. // // AWS::Region Region *string // When true, send this request to the FIPS-compliant regional endpoint. If the // configured endpoint does not have a FIPS compliant endpoint, dispatching the // request will return an error. // // Defaults to false if no value is // provided. // // AWS::UseFIPS UseFIPS *bool // When true, use the dual-stack endpoint. If the configured endpoint does not // support dual-stack, dispatching the request MAY return an error. // // Defaults to // false if no value is provided. // // AWS::UseDualStack UseDualStack *bool // Override the endpoint used to send this request // // Parameter is // required. // // SDK::Endpoint Endpoint *string // When true, force a path-style endpoint to be used where the bucket name is part // of the path. // // Defaults to false if no value is // provided. // // AWS::S3::ForcePathStyle ForcePathStyle *bool // When true, use S3 Accelerate. NOTE: Not all regions support S3 // accelerate. // // Defaults to false if no value is provided. // // AWS::S3::Accelerate Accelerate *bool // Whether the global endpoint should be used, rather then the regional endpoint // for us-east-1. // // Defaults to false if no value is // provided. // // AWS::S3::UseGlobalEndpoint UseGlobalEndpoint *bool // Internal parameter to use object lambda endpoint for an operation (eg: // WriteGetObjectResponse) // // Parameter is required. UseObjectLambdaEndpoint *bool // The S3 Key used to send the request. This is an optional parameter that will be // set automatically for operations that are scoped to an S3 Key. // // Parameter is // required. Key *string // The S3 Prefix used to send the request. This is an optional parameter that will // be set automatically for operations that are scoped to an S3 Prefix. // // Parameter // is required. Prefix *string // The Copy Source used for Copy Object request. This is an optional parameter that // will be set automatically for operations that are scoped to Copy // Source. // // Parameter is required. CopySource *string // Internal parameter to disable Access Point Buckets // // Parameter is required. DisableAccessPoints *bool // Whether multi-region access points (MRAP) should be disabled. // // Defaults to false // if no value is provided. // // AWS::S3::DisableMultiRegionAccessPoints DisableMultiRegionAccessPoints *bool // When an Access Point ARN is provided and this flag is enabled, the SDK MUST use // the ARN's region when constructing the endpoint instead of the client's // configured region. // // Parameter is required. // // AWS::S3::UseArnRegion UseArnRegion *bool // Internal parameter to indicate whether S3Express operation should use control // plane, (ex. CreateBucket) // // Parameter is required. UseS3ExpressControlEndpoint *bool // Parameter to indicate whether S3Express session auth should be // disabled // // Parameter is required. DisableS3ExpressSessionAuth *bool } // ValidateRequired validates required parameters are set. func (p EndpointParameters) ValidateRequired() error { if p.Accelerate == nil { return fmt.Errorf("parameter Accelerate is required") } if p.DisableMultiRegionAccessPoints == nil { return fmt.Errorf("parameter DisableMultiRegionAccessPoints is required") } if p.ForcePathStyle == nil { return fmt.Errorf("parameter ForcePathStyle is required") } if p.UseDualStack == nil { return fmt.Errorf("parameter UseDualStack is required") } if p.UseFIPS == nil { return fmt.Errorf("parameter UseFIPS is required") } if p.UseGlobalEndpoint == nil { return fmt.Errorf("parameter UseGlobalEndpoint is required") } return nil } // WithDefaults returns a shallow copy of EndpointParameterswith default values // applied to members where applicable. func (p EndpointParameters) WithDefaults() EndpointParameters { if p.Accelerate == nil { p.Accelerate = ptr.Bool(false) } if p.DisableMultiRegionAccessPoints == nil { p.DisableMultiRegionAccessPoints = ptr.Bool(false) } if p.ForcePathStyle == nil { p.ForcePathStyle = ptr.Bool(false) } if p.UseDualStack == nil { p.UseDualStack = ptr.Bool(false) } if p.UseFIPS == nil { p.UseFIPS = ptr.Bool(false) } if p.UseGlobalEndpoint == nil { p.UseGlobalEndpoint = ptr.Bool(false) } return p } // EndpointResolverV2 provides the interface for resolving service endpoints. type EndpointResolverV2 interface { // ResolveEndpoint attempts to resolve the endpoint with the provided options, // returning the endpoint if found. Otherwise an error is returned. ResolveEndpoint(ctx context.Context, params EndpointParameters) ( smithyendpoints.Endpoint, error, ) } // resolver provides the implementation for resolving endpoints. type resolver struct{} func NewDefaultEndpointResolverV2() EndpointResolverV2 { return &resolver{} } // ResolveEndpoint attempts to resolve the endpoint with the provided options, // returning the endpoint if found. Otherwise an error is returned. 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 _UseDualStack := *params.UseDualStack _ForcePathStyle := *params.ForcePathStyle _Accelerate := *params.Accelerate _UseGlobalEndpoint := *params.UseGlobalEndpoint _DisableMultiRegionAccessPoints := *params.DisableMultiRegionAccessPoints if exprVal := params.Region; exprVal != nil { _Region := *exprVal _ = _Region if _Accelerate == true { if _UseFIPS == true { return endpoint, fmt.Errorf("endpoint rule error, %s", "Accelerate cannot be used with FIPS") } } if _UseDualStack == true { if exprVal := params.Endpoint; exprVal != nil { _Endpoint := *exprVal _ = _Endpoint return endpoint, fmt.Errorf("endpoint rule error, %s", "Cannot set dual-stack in combination with a custom endpoint.") } } if exprVal := params.Endpoint; exprVal != nil { _Endpoint := *exprVal _ = _Endpoint if _UseFIPS == true { return endpoint, fmt.Errorf("endpoint rule error, %s", "A custom endpoint cannot be combined with FIPS") } } if exprVal := params.Endpoint; exprVal != nil { _Endpoint := *exprVal _ = _Endpoint if _Accelerate == true { return endpoint, fmt.Errorf("endpoint rule error, %s", "A custom endpoint cannot be combined with S3 Accelerate") } } if _UseFIPS == true { if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil { _partitionResult := *exprVal _ = _partitionResult if _partitionResult.Name == "aws-cn" { return endpoint, fmt.Errorf("endpoint rule error, %s", "Partition does not support FIPS") } } } if exprVal := params.Bucket; exprVal != nil { _Bucket := *exprVal _ = _Bucket if exprVal := rulesfn.SubString(_Bucket, 0, 6, true); exprVal != nil { _bucketSuffix := *exprVal _ = _bucketSuffix if _bucketSuffix == "--x-s3" { if _UseDualStack == true { return endpoint, fmt.Errorf("endpoint rule error, %s", "S3Express does not support Dual-stack.") } if _Accelerate == true { return endpoint, fmt.Errorf("endpoint rule error, %s", "S3Express does not support S3 Accelerate.") } if exprVal := params.Endpoint; exprVal != nil { _Endpoint := *exprVal _ = _Endpoint if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil { _url := *exprVal _ = _url if exprVal := params.DisableS3ExpressSessionAuth; exprVal != nil { _DisableS3ExpressSessionAuth := *exprVal _ = _DisableS3ExpressSessionAuth if _DisableS3ExpressSessionAuth == true { if _url.IsIp == true { _uri_encoded_bucket := rulesfn.URIEncode(_Bucket) _ = _uri_encoded_bucket uriString := func() string { var out strings.Builder out.WriteString(_url.Scheme) out.WriteString("://") out.WriteString(_url.Authority) out.WriteString("/") out.WriteString(_uri_encoded_bucket) 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 out.Set("backend", "S3Express") smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ { SchemeID: "aws.auth#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3express") smithyhttp.SetSigV4ASigningName(&sp, "s3express") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } if awsrulesfn.IsVirtualHostableS3Bucket(_Bucket, false) { uriString := func() string { var out strings.Builder out.WriteString(_url.Scheme) out.WriteString("://") out.WriteString(_Bucket) 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 out.Set("backend", "S3Express") smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ { SchemeID: "aws.auth#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3express") smithyhttp.SetSigV4ASigningName(&sp, "s3express") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } return endpoint, fmt.Errorf("endpoint rule error, %s", "S3Express bucket name is not a valid virtual hostable name.") } } if _url.IsIp == true { _uri_encoded_bucket := rulesfn.URIEncode(_Bucket) _ = _uri_encoded_bucket uriString := func() string { var out strings.Builder out.WriteString(_url.Scheme) out.WriteString("://") out.WriteString(_url.Authority) out.WriteString("/") out.WriteString(_uri_encoded_bucket) 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 out.Set("backend", "S3Express") smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ { SchemeID: "sigv4-s3express", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3express") smithyhttp.SetSigV4ASigningName(&sp, "s3express") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } if awsrulesfn.IsVirtualHostableS3Bucket(_Bucket, false) { uriString := func() string { var out strings.Builder out.WriteString(_url.Scheme) out.WriteString("://") out.WriteString(_Bucket) 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 out.Set("backend", "S3Express") smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ { SchemeID: "sigv4-s3express", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3express") smithyhttp.SetSigV4ASigningName(&sp, "s3express") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } return endpoint, fmt.Errorf("endpoint rule error, %s", "S3Express bucket name is not a valid virtual hostable name.") } } if exprVal := params.UseS3ExpressControlEndpoint; exprVal != nil { _UseS3ExpressControlEndpoint := *exprVal _ = _UseS3ExpressControlEndpoint if _UseS3ExpressControlEndpoint == true { _uri_encoded_bucket := rulesfn.URIEncode(_Bucket) _ = _uri_encoded_bucket if !(params.Endpoint != nil) { if _UseFIPS == true { uriString := func() string { var out strings.Builder out.WriteString("https://s3express-control-fips.") out.WriteString(_Region) out.WriteString(".amazonaws.com/") out.WriteString(_uri_encoded_bucket) 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 out.Set("backend", "S3Express") smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ { SchemeID: "aws.auth#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3express") smithyhttp.SetSigV4ASigningName(&sp, "s3express") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } uriString := func() string { var out strings.Builder out.WriteString("https://s3express-control.") out.WriteString(_Region) out.WriteString(".amazonaws.com/") out.WriteString(_uri_encoded_bucket) 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 out.Set("backend", "S3Express") smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ { SchemeID: "aws.auth#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3express") smithyhttp.SetSigV4ASigningName(&sp, "s3express") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.") } } if awsrulesfn.IsVirtualHostableS3Bucket(_Bucket, false) { if exprVal := params.DisableS3ExpressSessionAuth; exprVal != nil { _DisableS3ExpressSessionAuth := *exprVal _ = _DisableS3ExpressSessionAuth if _DisableS3ExpressSessionAuth == true { if exprVal := rulesfn.SubString(_Bucket, 6, 14, true); exprVal != nil { _s3expressAvailabilityZoneId := *exprVal _ = _s3expressAvailabilityZoneId if exprVal := rulesfn.SubString(_Bucket, 14, 16, true); exprVal != nil { _s3expressAvailabilityZoneDelim := *exprVal _ = _s3expressAvailabilityZoneDelim if _s3expressAvailabilityZoneDelim == "--" { if _UseFIPS == true { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3express-fips-") out.WriteString(_s3expressAvailabilityZoneId) out.WriteString(".") out.WriteString(_Region) out.WriteString(".amazonaws.com") 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 out.Set("backend", "S3Express") smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ { SchemeID: "aws.auth#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3express") smithyhttp.SetSigV4ASigningName(&sp, "s3express") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3express-") out.WriteString(_s3expressAvailabilityZoneId) out.WriteString(".") out.WriteString(_Region) out.WriteString(".amazonaws.com") 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 out.Set("backend", "S3Express") smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ { SchemeID: "aws.auth#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3express") smithyhttp.SetSigV4ASigningName(&sp, "s3express") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } if exprVal := rulesfn.SubString(_Bucket, 6, 15, true); exprVal != nil { _s3expressAvailabilityZoneId := *exprVal _ = _s3expressAvailabilityZoneId if exprVal := rulesfn.SubString(_Bucket, 15, 17, true); exprVal != nil { _s3expressAvailabilityZoneDelim := *exprVal _ = _s3expressAvailabilityZoneDelim if _s3expressAvailabilityZoneDelim == "--" { if _UseFIPS == true { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3express-fips-") out.WriteString(_s3expressAvailabilityZoneId) out.WriteString(".") out.WriteString(_Region) out.WriteString(".amazonaws.com") 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 out.Set("backend", "S3Express") smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ { SchemeID: "aws.auth#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3express") smithyhttp.SetSigV4ASigningName(&sp, "s3express") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3express-") out.WriteString(_s3expressAvailabilityZoneId) out.WriteString(".") out.WriteString(_Region) out.WriteString(".amazonaws.com") 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 out.Set("backend", "S3Express") smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ { SchemeID: "aws.auth#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3express") smithyhttp.SetSigV4ASigningName(&sp, "s3express") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } return endpoint, fmt.Errorf("endpoint rule error, %s", "Unrecognized S3Express bucket name format.") } } if exprVal := rulesfn.SubString(_Bucket, 6, 14, true); exprVal != nil { _s3expressAvailabilityZoneId := *exprVal _ = _s3expressAvailabilityZoneId if exprVal := rulesfn.SubString(_Bucket, 14, 16, true); exprVal != nil { _s3expressAvailabilityZoneDelim := *exprVal _ = _s3expressAvailabilityZoneDelim if _s3expressAvailabilityZoneDelim == "--" { if _UseFIPS == true { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3express-fips-") out.WriteString(_s3expressAvailabilityZoneId) out.WriteString(".") out.WriteString(_Region) out.WriteString(".amazonaws.com") 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 out.Set("backend", "S3Express") smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ { SchemeID: "sigv4-s3express", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3express") smithyhttp.SetSigV4ASigningName(&sp, "s3express") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3express-") out.WriteString(_s3expressAvailabilityZoneId) out.WriteString(".") out.WriteString(_Region) out.WriteString(".amazonaws.com") 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 out.Set("backend", "S3Express") smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ { SchemeID: "sigv4-s3express", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3express") smithyhttp.SetSigV4ASigningName(&sp, "s3express") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } if exprVal := rulesfn.SubString(_Bucket, 6, 15, true); exprVal != nil { _s3expressAvailabilityZoneId := *exprVal _ = _s3expressAvailabilityZoneId if exprVal := rulesfn.SubString(_Bucket, 15, 17, true); exprVal != nil { _s3expressAvailabilityZoneDelim := *exprVal _ = _s3expressAvailabilityZoneDelim if _s3expressAvailabilityZoneDelim == "--" { if _UseFIPS == true { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3express-fips-") out.WriteString(_s3expressAvailabilityZoneId) out.WriteString(".") out.WriteString(_Region) out.WriteString(".amazonaws.com") 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 out.Set("backend", "S3Express") smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ { SchemeID: "sigv4-s3express", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3express") smithyhttp.SetSigV4ASigningName(&sp, "s3express") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3express-") out.WriteString(_s3expressAvailabilityZoneId) out.WriteString(".") out.WriteString(_Region) out.WriteString(".amazonaws.com") 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 out.Set("backend", "S3Express") smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ { SchemeID: "sigv4-s3express", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3express") smithyhttp.SetSigV4ASigningName(&sp, "s3express") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } return endpoint, fmt.Errorf("endpoint rule error, %s", "Unrecognized S3Express bucket name format.") } return endpoint, fmt.Errorf("endpoint rule error, %s", "S3Express bucket name is not a valid virtual hostable name.") } } } if !(params.Bucket != nil) { if exprVal := params.UseS3ExpressControlEndpoint; exprVal != nil { _UseS3ExpressControlEndpoint := *exprVal _ = _UseS3ExpressControlEndpoint if _UseS3ExpressControlEndpoint == true { 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(_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 out.Set("backend", "S3Express") smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ { SchemeID: "aws.auth#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3express") smithyhttp.SetSigV4ASigningName(&sp, "s3express") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } if _UseFIPS == true { uriString := func() string { var out strings.Builder out.WriteString("https://s3express-control-fips.") out.WriteString(_Region) out.WriteString(".amazonaws.com") 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 out.Set("backend", "S3Express") smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ { SchemeID: "aws.auth#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3express") smithyhttp.SetSigV4ASigningName(&sp, "s3express") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } uriString := func() string { var out strings.Builder out.WriteString("https://s3express-control.") out.WriteString(_Region) out.WriteString(".amazonaws.com") 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 out.Set("backend", "S3Express") smithyauth.SetAuthOptions(&out, []*smithyauth.Option{ { SchemeID: "aws.auth#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3express") smithyhttp.SetSigV4ASigningName(&sp, "s3express") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } if exprVal := params.Bucket; exprVal != nil { _Bucket := *exprVal _ = _Bucket if exprVal := rulesfn.SubString(_Bucket, 49, 50, true); exprVal != nil { _hardwareType := *exprVal _ = _hardwareType if exprVal := rulesfn.SubString(_Bucket, 8, 12, true); exprVal != nil { _regionPrefix := *exprVal _ = _regionPrefix if exprVal := rulesfn.SubString(_Bucket, 0, 7, true); exprVal != nil { _bucketAliasSuffix := *exprVal _ = _bucketAliasSuffix if exprVal := rulesfn.SubString(_Bucket, 32, 49, true); exprVal != nil { _outpostId := *exprVal _ = _outpostId if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil { _regionPartition := *exprVal _ = _regionPartition if _bucketAliasSuffix == "--op-s3" { if rulesfn.IsValidHostLabel(_outpostId, false) { if _hardwareType == "e" { if _regionPrefix == "beta" { if !(params.Endpoint != nil) { return endpoint, fmt.Errorf("endpoint rule error, %s", "Expected a endpoint to be specified but no endpoint was found") } 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("https://") out.WriteString(_Bucket) out.WriteString(".ec2.") out.WriteString(_url.Authority) 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.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3-outposts") smithyhttp.SetSigV4ASigningName(&sp, "s3-outposts") smithyhttp.SetSigV4ASigningRegions(&sp, []string{"*"}) return sp }(), }, { SchemeID: "aws.auth#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3-outposts") smithyhttp.SetSigV4ASigningName(&sp, "s3-outposts") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.") } uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".ec2.s3-outposts.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_regionPartition.DnsSuffix) 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.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3-outposts") smithyhttp.SetSigV4ASigningName(&sp, "s3-outposts") smithyhttp.SetSigV4ASigningRegions(&sp, []string{"*"}) return sp }(), }, { SchemeID: "aws.auth#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3-outposts") smithyhttp.SetSigV4ASigningName(&sp, "s3-outposts") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } if _hardwareType == "o" { if _regionPrefix == "beta" { if !(params.Endpoint != nil) { return endpoint, fmt.Errorf("endpoint rule error, %s", "Expected a endpoint to be specified but no endpoint was found") } 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("https://") out.WriteString(_Bucket) out.WriteString(".op-") out.WriteString(_outpostId) out.WriteString(".") out.WriteString(_url.Authority) 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.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3-outposts") smithyhttp.SetSigV4ASigningName(&sp, "s3-outposts") smithyhttp.SetSigV4ASigningRegions(&sp, []string{"*"}) return sp }(), }, { SchemeID: "aws.auth#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3-outposts") smithyhttp.SetSigV4ASigningName(&sp, "s3-outposts") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.") } uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".op-") out.WriteString(_outpostId) out.WriteString(".s3-outposts.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_regionPartition.DnsSuffix) 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.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3-outposts") smithyhttp.SetSigV4ASigningName(&sp, "s3-outposts") smithyhttp.SetSigV4ASigningRegions(&sp, []string{"*"}) return sp }(), }, { SchemeID: "aws.auth#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3-outposts") smithyhttp.SetSigV4ASigningName(&sp, "s3-outposts") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } return endpoint, fmt.Errorf("endpoint rule error, %s", func() string { var out strings.Builder out.WriteString("Unrecognized hardware type: \"Expected hardware type o or e but got ") out.WriteString(_hardwareType) out.WriteString("\"") return out.String() }()) } return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`.") } } } } } } } if exprVal := params.Bucket; exprVal != nil { _Bucket := *exprVal _ = _Bucket if exprVal := params.Endpoint; exprVal != nil { _Endpoint := *exprVal _ = _Endpoint if !(rulesfn.ParseURL(_Endpoint) != nil) { return endpoint, fmt.Errorf("endpoint rule error, %s", func() string { var out strings.Builder out.WriteString("Custom endpoint `") out.WriteString(_Endpoint) out.WriteString("` was not a valid URI") return out.String() }()) } } if _ForcePathStyle == false { if awsrulesfn.IsVirtualHostableS3Bucket(_Bucket, false) { if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil { _partitionResult := *exprVal _ = _partitionResult if rulesfn.IsValidHostLabel(_Region, false) { if _Accelerate == true { if _partitionResult.Name == "aws-cn" { return endpoint, fmt.Errorf("endpoint rule error, %s", "S3 Accelerate cannot be used in this region") } } if _UseDualStack == true { if _UseFIPS == true { if _Accelerate == false { if !(params.Endpoint != nil) { if _Region == "aws-global" { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3-fips.dualstack.us-east-1.") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1") return sp }(), }, }) return out }(), }, nil } } } } } if _UseDualStack == true { if _UseFIPS == true { if _Accelerate == false { if !(params.Endpoint != nil) { if !(_Region == "aws-global") { if _UseGlobalEndpoint == true { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3-fips.dualstack.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } } if _UseDualStack == true { if _UseFIPS == true { if _Accelerate == false { if !(params.Endpoint != nil) { if !(_Region == "aws-global") { if _UseGlobalEndpoint == false { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3-fips.dualstack.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } } if _UseDualStack == false { if _UseFIPS == true { if _Accelerate == false { if !(params.Endpoint != nil) { if _Region == "aws-global" { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3-fips.us-east-1.") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1") return sp }(), }, }) return out }(), }, nil } } } } } if _UseDualStack == false { if _UseFIPS == true { if _Accelerate == false { if !(params.Endpoint != nil) { if !(_Region == "aws-global") { if _UseGlobalEndpoint == true { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3-fips.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } } if _UseDualStack == false { if _UseFIPS == true { if _Accelerate == false { if !(params.Endpoint != nil) { if !(_Region == "aws-global") { if _UseGlobalEndpoint == false { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3-fips.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } } if _UseDualStack == true { if _UseFIPS == false { if _Accelerate == true { if !(params.Endpoint != nil) { if _Region == "aws-global" { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3-accelerate.dualstack.us-east-1.") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1") return sp }(), }, }) return out }(), }, nil } } } } } if _UseDualStack == true { if _UseFIPS == false { if _Accelerate == true { if !(params.Endpoint != nil) { if !(_Region == "aws-global") { if _UseGlobalEndpoint == true { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3-accelerate.dualstack.") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } } if _UseDualStack == true { if _UseFIPS == false { if _Accelerate == true { if !(params.Endpoint != nil) { if !(_Region == "aws-global") { if _UseGlobalEndpoint == false { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3-accelerate.dualstack.") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } } if _UseDualStack == true { if _UseFIPS == false { if _Accelerate == false { if !(params.Endpoint != nil) { if _Region == "aws-global" { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3.dualstack.us-east-1.") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1") return sp }(), }, }) return out }(), }, nil } } } } } if _UseDualStack == true { if _UseFIPS == false { if _Accelerate == false { if !(params.Endpoint != nil) { if !(_Region == "aws-global") { if _UseGlobalEndpoint == true { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3.dualstack.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } } if _UseDualStack == true { if _UseFIPS == false { if _Accelerate == false { if !(params.Endpoint != nil) { if !(_Region == "aws-global") { if _UseGlobalEndpoint == false { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3.dualstack.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } } if _UseDualStack == false { if _UseFIPS == false { if _Accelerate == false { if exprVal := params.Endpoint; exprVal != nil { _Endpoint := *exprVal _ = _Endpoint if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil { _url := *exprVal _ = _url if _url.IsIp == true { if _Region == "aws-global" { uriString := func() string { var out strings.Builder out.WriteString(_url.Scheme) out.WriteString("://") out.WriteString(_url.Authority) out.WriteString(_url.NormalizedPath) out.WriteString(_Bucket) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1") return sp }(), }, }) return out }(), }, nil } } } } } } } if _UseDualStack == false { if _UseFIPS == false { if _Accelerate == false { if exprVal := params.Endpoint; exprVal != nil { _Endpoint := *exprVal _ = _Endpoint if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil { _url := *exprVal _ = _url if _url.IsIp == false { if _Region == "aws-global" { uriString := func() string { var out strings.Builder out.WriteString(_url.Scheme) out.WriteString("://") out.WriteString(_Bucket) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1") return sp }(), }, }) return out }(), }, nil } } } } } } } if _UseDualStack == false { if _UseFIPS == false { if _Accelerate == false { if exprVal := params.Endpoint; exprVal != nil { _Endpoint := *exprVal _ = _Endpoint if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil { _url := *exprVal _ = _url if _url.IsIp == true { if !(_Region == "aws-global") { if _UseGlobalEndpoint == true { if _Region == "us-east-1" { uriString := func() string { var out strings.Builder out.WriteString(_url.Scheme) out.WriteString("://") out.WriteString(_url.Authority) out.WriteString(_url.NormalizedPath) out.WriteString(_Bucket) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } uriString := func() string { var out strings.Builder out.WriteString(_url.Scheme) out.WriteString("://") out.WriteString(_url.Authority) out.WriteString(_url.NormalizedPath) out.WriteString(_Bucket) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } } } } if _UseDualStack == false { if _UseFIPS == false { if _Accelerate == false { if exprVal := params.Endpoint; exprVal != nil { _Endpoint := *exprVal _ = _Endpoint if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil { _url := *exprVal _ = _url if _url.IsIp == false { if !(_Region == "aws-global") { if _UseGlobalEndpoint == true { if _Region == "us-east-1" { uriString := func() string { var out strings.Builder out.WriteString(_url.Scheme) out.WriteString("://") out.WriteString(_Bucket) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } uriString := func() string { var out strings.Builder out.WriteString(_url.Scheme) out.WriteString("://") out.WriteString(_Bucket) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } } } } if _UseDualStack == false { if _UseFIPS == false { if _Accelerate == false { if exprVal := params.Endpoint; exprVal != nil { _Endpoint := *exprVal _ = _Endpoint if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil { _url := *exprVal _ = _url if _url.IsIp == true { if !(_Region == "aws-global") { if _UseGlobalEndpoint == false { uriString := func() string { var out strings.Builder out.WriteString(_url.Scheme) out.WriteString("://") out.WriteString(_url.Authority) out.WriteString(_url.NormalizedPath) out.WriteString(_Bucket) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } } } } if _UseDualStack == false { if _UseFIPS == false { if _Accelerate == false { if exprVal := params.Endpoint; exprVal != nil { _Endpoint := *exprVal _ = _Endpoint if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil { _url := *exprVal _ = _url if _url.IsIp == false { if !(_Region == "aws-global") { if _UseGlobalEndpoint == false { uriString := func() string { var out strings.Builder out.WriteString(_url.Scheme) out.WriteString("://") out.WriteString(_Bucket) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } } } } if _UseDualStack == false { if _UseFIPS == false { if _Accelerate == true { if !(params.Endpoint != nil) { if _Region == "aws-global" { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3-accelerate.") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1") return sp }(), }, }) return out }(), }, nil } } } } } if _UseDualStack == false { if _UseFIPS == false { if _Accelerate == true { if !(params.Endpoint != nil) { if !(_Region == "aws-global") { if _UseGlobalEndpoint == true { if _Region == "us-east-1" { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3-accelerate.") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3-accelerate.") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } } if _UseDualStack == false { if _UseFIPS == false { if _Accelerate == true { if !(params.Endpoint != nil) { if !(_Region == "aws-global") { if _UseGlobalEndpoint == false { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3-accelerate.") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } } if _UseDualStack == false { if _UseFIPS == false { if _Accelerate == false { if !(params.Endpoint != nil) { if _Region == "aws-global" { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3.") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1") return sp }(), }, }) return out }(), }, nil } } } } } if _UseDualStack == false { if _UseFIPS == false { if _Accelerate == false { if !(params.Endpoint != nil) { if !(_Region == "aws-global") { if _UseGlobalEndpoint == true { if _Region == "us-east-1" { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3.") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } } if _UseDualStack == false { if _UseFIPS == false { if _Accelerate == false { if !(params.Endpoint != nil) { if !(_Region == "aws-global") { if _UseGlobalEndpoint == false { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_Bucket) out.WriteString(".s3.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } } return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.") } return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid region: region was not a valid DNS name.") } 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 if _url.Scheme == "http" { if awsrulesfn.IsVirtualHostableS3Bucket(_Bucket, true) { if _ForcePathStyle == false { if _UseFIPS == false { if _UseDualStack == false { if _Accelerate == false { if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil { _partitionResult := *exprVal _ = _partitionResult if rulesfn.IsValidHostLabel(_Region, false) { uriString := func() string { var out strings.Builder out.WriteString(_url.Scheme) out.WriteString("://") out.WriteString(_Bucket) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid region: region was not a valid DNS name.") } return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.") } } } } } } } } if _ForcePathStyle == false { if exprVal := awsrulesfn.ParseARN(_Bucket); exprVal != nil { _bucketArn := *exprVal _ = _bucketArn if exprVal := _bucketArn.ResourceId.Get(0); exprVal != nil { _arnType := *exprVal _ = _arnType if !(_arnType == "") { if _bucketArn.Service == "s3-object-lambda" { if _arnType == "accesspoint" { if exprVal := _bucketArn.ResourceId.Get(1); exprVal != nil { _accessPointName := *exprVal _ = _accessPointName if !(_accessPointName == "") { if _UseDualStack == true { return endpoint, fmt.Errorf("endpoint rule error, %s", "S3 Object Lambda does not support Dual-stack") } if _Accelerate == true { return endpoint, fmt.Errorf("endpoint rule error, %s", "S3 Object Lambda does not support S3 Accelerate") } if !(_bucketArn.Region == "") { if exprVal := params.DisableAccessPoints; exprVal != nil { _DisableAccessPoints := *exprVal _ = _DisableAccessPoints if _DisableAccessPoints == true { return endpoint, fmt.Errorf("endpoint rule error, %s", "Access points are not supported for this operation") } } if !(_bucketArn.ResourceId.Get(2) != nil) { if exprVal := params.UseArnRegion; exprVal != nil { _UseArnRegion := *exprVal _ = _UseArnRegion if _UseArnRegion == false { if !(_bucketArn.Region == _Region) { return endpoint, fmt.Errorf("endpoint rule error, %s", func() string { var out strings.Builder out.WriteString("Invalid configuration: region from ARN `") out.WriteString(_bucketArn.Region) out.WriteString("` does not match client region `") out.WriteString(_Region) out.WriteString("` and UseArnRegion is `false`") return out.String() }()) } } } if exprVal := awsrulesfn.GetPartition(_bucketArn.Region); exprVal != nil { _bucketPartition := *exprVal _ = _bucketPartition if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil { _partitionResult := *exprVal _ = _partitionResult if _bucketPartition.Name == _partitionResult.Name { if rulesfn.IsValidHostLabel(_bucketArn.Region, true) { if _bucketArn.AccountId == "" { return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid ARN: Missing account id") } if rulesfn.IsValidHostLabel(_bucketArn.AccountId, false) { if rulesfn.IsValidHostLabel(_accessPointName, false) { 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(_accessPointName) out.WriteString("-") out.WriteString(_bucketArn.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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3-object-lambda") smithyhttp.SetSigV4ASigningName(&sp, "s3-object-lambda") smithyhttp.SetSigV4SigningRegion(&sp, _bucketArn.Region) return sp }(), }, }) return out }(), }, nil } } if _UseFIPS == true { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_accessPointName) out.WriteString("-") out.WriteString(_bucketArn.AccountId) out.WriteString(".s3-object-lambda-fips.") out.WriteString(_bucketArn.Region) out.WriteString(".") out.WriteString(_bucketPartition.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3-object-lambda") smithyhttp.SetSigV4ASigningName(&sp, "s3-object-lambda") smithyhttp.SetSigV4SigningRegion(&sp, _bucketArn.Region) return sp }(), }, }) return out }(), }, nil } uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_accessPointName) out.WriteString("-") out.WriteString(_bucketArn.AccountId) out.WriteString(".s3-object-lambda.") out.WriteString(_bucketArn.Region) out.WriteString(".") out.WriteString(_bucketPartition.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3-object-lambda") smithyhttp.SetSigV4ASigningName(&sp, "s3-object-lambda") smithyhttp.SetSigV4SigningRegion(&sp, _bucketArn.Region) return sp }(), }, }) return out }(), }, nil } return endpoint, fmt.Errorf("endpoint rule error, %s", func() string { var out strings.Builder out.WriteString("Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `") out.WriteString(_accessPointName) out.WriteString("`") return out.String() }()) } return endpoint, fmt.Errorf("endpoint rule error, %s", func() string { var out strings.Builder out.WriteString("Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `") out.WriteString(_bucketArn.AccountId) out.WriteString("`") return out.String() }()) } return endpoint, fmt.Errorf("endpoint rule error, %s", func() string { var out strings.Builder out.WriteString("Invalid region in ARN: `") out.WriteString(_bucketArn.Region) out.WriteString("` (invalid DNS name)") return out.String() }()) } 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 ARN (`") out.WriteString(_Bucket) out.WriteString("`) has `") out.WriteString(_bucketPartition.Name) out.WriteString("`") return out.String() }()) } return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.") } return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.") } return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.") } return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid ARN: bucket ARN is missing a region") } } return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided") } return endpoint, fmt.Errorf("endpoint rule error, %s", func() string { var out strings.Builder out.WriteString("Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `") out.WriteString(_arnType) out.WriteString("`") return out.String() }()) } if _arnType == "accesspoint" { if exprVal := _bucketArn.ResourceId.Get(1); exprVal != nil { _accessPointName := *exprVal _ = _accessPointName if !(_accessPointName == "") { if !(_bucketArn.Region == "") { if _arnType == "accesspoint" { if !(_bucketArn.Region == "") { if exprVal := params.DisableAccessPoints; exprVal != nil { _DisableAccessPoints := *exprVal _ = _DisableAccessPoints if _DisableAccessPoints == true { return endpoint, fmt.Errorf("endpoint rule error, %s", "Access points are not supported for this operation") } } if !(_bucketArn.ResourceId.Get(2) != nil) { if exprVal := params.UseArnRegion; exprVal != nil { _UseArnRegion := *exprVal _ = _UseArnRegion if _UseArnRegion == false { if !(_bucketArn.Region == _Region) { return endpoint, fmt.Errorf("endpoint rule error, %s", func() string { var out strings.Builder out.WriteString("Invalid configuration: region from ARN `") out.WriteString(_bucketArn.Region) out.WriteString("` does not match client region `") out.WriteString(_Region) out.WriteString("` and UseArnRegion is `false`") return out.String() }()) } } } if exprVal := awsrulesfn.GetPartition(_bucketArn.Region); exprVal != nil { _bucketPartition := *exprVal _ = _bucketPartition if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil { _partitionResult := *exprVal _ = _partitionResult if _bucketPartition.Name == _partitionResult.Name { if rulesfn.IsValidHostLabel(_bucketArn.Region, true) { if _bucketArn.Service == "s3" { if rulesfn.IsValidHostLabel(_bucketArn.AccountId, false) { if rulesfn.IsValidHostLabel(_accessPointName, false) { if _Accelerate == true { return endpoint, fmt.Errorf("endpoint rule error, %s", "Access Points do not support S3 Accelerate") } if _UseFIPS == true { if _UseDualStack == true { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_accessPointName) out.WriteString("-") out.WriteString(_bucketArn.AccountId) out.WriteString(".s3-accesspoint-fips.dualstack.") out.WriteString(_bucketArn.Region) out.WriteString(".") out.WriteString(_bucketPartition.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _bucketArn.Region) return sp }(), }, }) return out }(), }, nil } } if _UseFIPS == true { if _UseDualStack == false { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_accessPointName) out.WriteString("-") out.WriteString(_bucketArn.AccountId) out.WriteString(".s3-accesspoint-fips.") out.WriteString(_bucketArn.Region) out.WriteString(".") out.WriteString(_bucketPartition.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _bucketArn.Region) return sp }(), }, }) return out }(), }, nil } } if _UseFIPS == false { if _UseDualStack == true { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_accessPointName) out.WriteString("-") out.WriteString(_bucketArn.AccountId) out.WriteString(".s3-accesspoint.dualstack.") out.WriteString(_bucketArn.Region) out.WriteString(".") out.WriteString(_bucketPartition.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _bucketArn.Region) return sp }(), }, }) return out }(), }, nil } } if _UseFIPS == false { if _UseDualStack == false { 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(_accessPointName) out.WriteString("-") out.WriteString(_bucketArn.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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _bucketArn.Region) return sp }(), }, }) return out }(), }, nil } } } } if _UseFIPS == false { if _UseDualStack == false { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_accessPointName) out.WriteString("-") out.WriteString(_bucketArn.AccountId) out.WriteString(".s3-accesspoint.") out.WriteString(_bucketArn.Region) out.WriteString(".") out.WriteString(_bucketPartition.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _bucketArn.Region) return sp }(), }, }) return out }(), }, nil } } return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.") } return endpoint, fmt.Errorf("endpoint rule error, %s", func() string { var out strings.Builder out.WriteString("Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `") out.WriteString(_accessPointName) out.WriteString("`") return out.String() }()) } return endpoint, fmt.Errorf("endpoint rule error, %s", func() string { var out strings.Builder out.WriteString("Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `") out.WriteString(_bucketArn.AccountId) out.WriteString("`") return out.String() }()) } return endpoint, fmt.Errorf("endpoint rule error, %s", func() string { var out strings.Builder out.WriteString("Invalid ARN: The ARN was not for the S3 service, found: ") out.WriteString(_bucketArn.Service) return out.String() }()) } return endpoint, fmt.Errorf("endpoint rule error, %s", func() string { var out strings.Builder out.WriteString("Invalid region in ARN: `") out.WriteString(_bucketArn.Region) out.WriteString("` (invalid DNS name)") return out.String() }()) } 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 ARN (`") out.WriteString(_Bucket) out.WriteString("`) has `") out.WriteString(_bucketPartition.Name) out.WriteString("`") return out.String() }()) } return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.") } return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.") } return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.") } return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.") } return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.") } if rulesfn.IsValidHostLabel(_accessPointName, true) { if _UseDualStack == true { return endpoint, fmt.Errorf("endpoint rule error, %s", "S3 MRAP does not support dual-stack") } if _UseFIPS == true { return endpoint, fmt.Errorf("endpoint rule error, %s", "S3 MRAP does not support FIPS") } if _Accelerate == true { return endpoint, fmt.Errorf("endpoint rule error, %s", "S3 MRAP does not support S3 Accelerate") } if _DisableMultiRegionAccessPoints == true { return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid configuration: Multi-Region Access Point ARNs are disabled.") } if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil { _mrapPartition := *exprVal _ = _mrapPartition if _mrapPartition.Name == _bucketArn.Partition { uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_accessPointName) out.WriteString(".accesspoint.s3-global.") out.WriteString(_mrapPartition.DnsSuffix) 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.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") 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(_mrapPartition.Name) out.WriteString("` but bucket referred to partition `") out.WriteString(_bucketArn.Partition) out.WriteString("`") return out.String() }()) } return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.") } return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid Access Point Name") } } return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided") } if _bucketArn.Service == "s3-outposts" { if _UseDualStack == true { return endpoint, fmt.Errorf("endpoint rule error, %s", "S3 Outposts does not support Dual-stack") } if _UseFIPS == true { return endpoint, fmt.Errorf("endpoint rule error, %s", "S3 Outposts does not support FIPS") } if _Accelerate == true { return endpoint, fmt.Errorf("endpoint rule error, %s", "S3 Outposts does not support S3 Accelerate") } if exprVal := _bucketArn.ResourceId.Get(4); exprVal != nil { _var_275 := *exprVal _ = _var_275 return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid Arn: Outpost Access Point ARN contains sub resources") } if exprVal := _bucketArn.ResourceId.Get(1); exprVal != nil { _outpostId := *exprVal _ = _outpostId if rulesfn.IsValidHostLabel(_outpostId, false) { if exprVal := params.UseArnRegion; exprVal != nil { _UseArnRegion := *exprVal _ = _UseArnRegion if _UseArnRegion == false { if !(_bucketArn.Region == _Region) { return endpoint, fmt.Errorf("endpoint rule error, %s", func() string { var out strings.Builder out.WriteString("Invalid configuration: region from ARN `") out.WriteString(_bucketArn.Region) out.WriteString("` does not match client region `") out.WriteString(_Region) out.WriteString("` and UseArnRegion is `false`") return out.String() }()) } } } if exprVal := awsrulesfn.GetPartition(_bucketArn.Region); exprVal != nil { _bucketPartition := *exprVal _ = _bucketPartition if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil { _partitionResult := *exprVal _ = _partitionResult if _bucketPartition.Name == _partitionResult.Name { if rulesfn.IsValidHostLabel(_bucketArn.Region, true) { if rulesfn.IsValidHostLabel(_bucketArn.AccountId, false) { if exprVal := _bucketArn.ResourceId.Get(2); exprVal != nil { _outpostType := *exprVal _ = _outpostType if exprVal := _bucketArn.ResourceId.Get(3); exprVal != nil { _accessPointName := *exprVal _ = _accessPointName if _outpostType == "accesspoint" { 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("https://") out.WriteString(_accessPointName) out.WriteString("-") out.WriteString(_bucketArn.AccountId) out.WriteString(".") out.WriteString(_outpostId) out.WriteString(".") out.WriteString(_url.Authority) 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.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3-outposts") smithyhttp.SetSigV4ASigningName(&sp, "s3-outposts") smithyhttp.SetSigV4ASigningRegions(&sp, []string{"*"}) return sp }(), }, { SchemeID: "aws.auth#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3-outposts") smithyhttp.SetSigV4ASigningName(&sp, "s3-outposts") smithyhttp.SetSigV4SigningRegion(&sp, _bucketArn.Region) return sp }(), }, }) return out }(), }, nil } } uriString := func() string { var out strings.Builder out.WriteString("https://") out.WriteString(_accessPointName) out.WriteString("-") out.WriteString(_bucketArn.AccountId) out.WriteString(".") out.WriteString(_outpostId) out.WriteString(".s3-outposts.") out.WriteString(_bucketArn.Region) out.WriteString(".") out.WriteString(_bucketPartition.DnsSuffix) 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.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3-outposts") smithyhttp.SetSigV4ASigningName(&sp, "s3-outposts") smithyhttp.SetSigV4ASigningRegions(&sp, []string{"*"}) return sp }(), }, { SchemeID: "aws.auth#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3-outposts") smithyhttp.SetSigV4ASigningName(&sp, "s3-outposts") smithyhttp.SetSigV4SigningRegion(&sp, _bucketArn.Region) return sp }(), }, }) return out }(), }, nil } return endpoint, fmt.Errorf("endpoint rule error, %s", func() string { var out strings.Builder out.WriteString("Expected an outpost type `accesspoint`, found ") out.WriteString(_outpostType) return out.String() }()) } return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid ARN: expected an access point name") } return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid ARN: Expected a 4-component resource") } return endpoint, fmt.Errorf("endpoint rule error, %s", func() string { var out strings.Builder out.WriteString("Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `") out.WriteString(_bucketArn.AccountId) out.WriteString("`") return out.String() }()) } return endpoint, fmt.Errorf("endpoint rule error, %s", func() string { var out strings.Builder out.WriteString("Invalid region in ARN: `") out.WriteString(_bucketArn.Region) out.WriteString("` (invalid DNS name)") return out.String() }()) } 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 ARN (`") out.WriteString(_Bucket) out.WriteString("`) has `") out.WriteString(_bucketPartition.Name) out.WriteString("`") return out.String() }()) } return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.") } return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.") } return endpoint, fmt.Errorf("endpoint rule error, %s", func() string { var out strings.Builder out.WriteString("Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `") out.WriteString(_outpostId) out.WriteString("`") return out.String() }()) } return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid ARN: The Outpost Id was not set") } return endpoint, fmt.Errorf("endpoint rule error, %s", func() string { var out strings.Builder out.WriteString("Invalid ARN: Unrecognized format: ") out.WriteString(_Bucket) out.WriteString(" (type: ") out.WriteString(_arnType) out.WriteString(")") return out.String() }()) } } return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid ARN: No ARN type specified") } } if exprVal := rulesfn.SubString(_Bucket, 0, 4, false); exprVal != nil { _arnPrefix := *exprVal _ = _arnPrefix if _arnPrefix == "arn:" { if !(awsrulesfn.ParseARN(_Bucket) != nil) { return endpoint, fmt.Errorf("endpoint rule error, %s", func() string { var out strings.Builder out.WriteString("Invalid ARN: `") out.WriteString(_Bucket) out.WriteString("` was not a valid ARN") return out.String() }()) } } } if _ForcePathStyle == true { if exprVal := awsrulesfn.ParseARN(_Bucket); exprVal != nil { _var_288 := *exprVal _ = _var_288 return endpoint, fmt.Errorf("endpoint rule error, %s", "Path-style addressing cannot be used with ARN buckets") } } _uri_encoded_bucket := rulesfn.URIEncode(_Bucket) _ = _uri_encoded_bucket if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil { _partitionResult := *exprVal _ = _partitionResult if _Accelerate == false { if _UseDualStack == true { if !(params.Endpoint != nil) { if _UseFIPS == true { if _Region == "aws-global" { uriString := func() string { var out strings.Builder out.WriteString("https://s3-fips.dualstack.us-east-1.") out.WriteString(_partitionResult.DnsSuffix) out.WriteString("/") out.WriteString(_uri_encoded_bucket) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1") return sp }(), }, }) return out }(), }, nil } } } } if _UseDualStack == true { if !(params.Endpoint != nil) { if _UseFIPS == true { if !(_Region == "aws-global") { if _UseGlobalEndpoint == true { uriString := func() string { var out strings.Builder out.WriteString("https://s3-fips.dualstack.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_partitionResult.DnsSuffix) out.WriteString("/") out.WriteString(_uri_encoded_bucket) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } if _UseDualStack == true { if !(params.Endpoint != nil) { if _UseFIPS == true { if !(_Region == "aws-global") { if _UseGlobalEndpoint == false { uriString := func() string { var out strings.Builder out.WriteString("https://s3-fips.dualstack.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_partitionResult.DnsSuffix) out.WriteString("/") out.WriteString(_uri_encoded_bucket) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } if _UseDualStack == false { if !(params.Endpoint != nil) { if _UseFIPS == true { if _Region == "aws-global" { uriString := func() string { var out strings.Builder out.WriteString("https://s3-fips.us-east-1.") out.WriteString(_partitionResult.DnsSuffix) out.WriteString("/") out.WriteString(_uri_encoded_bucket) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1") return sp }(), }, }) return out }(), }, nil } } } } if _UseDualStack == false { if !(params.Endpoint != nil) { if _UseFIPS == true { if !(_Region == "aws-global") { if _UseGlobalEndpoint == true { uriString := func() string { var out strings.Builder out.WriteString("https://s3-fips.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_partitionResult.DnsSuffix) out.WriteString("/") out.WriteString(_uri_encoded_bucket) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } if _UseDualStack == false { if !(params.Endpoint != nil) { if _UseFIPS == true { if !(_Region == "aws-global") { if _UseGlobalEndpoint == false { uriString := func() string { var out strings.Builder out.WriteString("https://s3-fips.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_partitionResult.DnsSuffix) out.WriteString("/") out.WriteString(_uri_encoded_bucket) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } if _UseDualStack == true { if !(params.Endpoint != nil) { if _UseFIPS == false { if _Region == "aws-global" { uriString := func() string { var out strings.Builder out.WriteString("https://s3.dualstack.us-east-1.") out.WriteString(_partitionResult.DnsSuffix) out.WriteString("/") out.WriteString(_uri_encoded_bucket) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1") return sp }(), }, }) return out }(), }, nil } } } } if _UseDualStack == true { if !(params.Endpoint != nil) { if _UseFIPS == false { if !(_Region == "aws-global") { if _UseGlobalEndpoint == true { uriString := func() string { var out strings.Builder out.WriteString("https://s3.dualstack.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_partitionResult.DnsSuffix) out.WriteString("/") out.WriteString(_uri_encoded_bucket) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } if _UseDualStack == true { if !(params.Endpoint != nil) { if _UseFIPS == false { if !(_Region == "aws-global") { if _UseGlobalEndpoint == false { uriString := func() string { var out strings.Builder out.WriteString("https://s3.dualstack.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_partitionResult.DnsSuffix) out.WriteString("/") out.WriteString(_uri_encoded_bucket) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } if _UseDualStack == false { if exprVal := params.Endpoint; exprVal != nil { _Endpoint := *exprVal _ = _Endpoint if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil { _url := *exprVal _ = _url if _UseFIPS == false { if _Region == "aws-global" { uriString := func() string { var out strings.Builder out.WriteString(_url.Scheme) out.WriteString("://") out.WriteString(_url.Authority) out.WriteString(_url.NormalizedPath) out.WriteString(_uri_encoded_bucket) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1") return sp }(), }, }) return out }(), }, nil } } } } } if _UseDualStack == false { if exprVal := params.Endpoint; exprVal != nil { _Endpoint := *exprVal _ = _Endpoint if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil { _url := *exprVal _ = _url if _UseFIPS == false { if !(_Region == "aws-global") { if _UseGlobalEndpoint == true { if _Region == "us-east-1" { uriString := func() string { var out strings.Builder out.WriteString(_url.Scheme) out.WriteString("://") out.WriteString(_url.Authority) out.WriteString(_url.NormalizedPath) out.WriteString(_uri_encoded_bucket) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } uriString := func() string { var out strings.Builder out.WriteString(_url.Scheme) out.WriteString("://") out.WriteString(_url.Authority) out.WriteString(_url.NormalizedPath) out.WriteString(_uri_encoded_bucket) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } } if _UseDualStack == false { if exprVal := params.Endpoint; exprVal != nil { _Endpoint := *exprVal _ = _Endpoint if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil { _url := *exprVal _ = _url if _UseFIPS == false { if !(_Region == "aws-global") { if _UseGlobalEndpoint == false { uriString := func() string { var out strings.Builder out.WriteString(_url.Scheme) out.WriteString("://") out.WriteString(_url.Authority) out.WriteString(_url.NormalizedPath) out.WriteString(_uri_encoded_bucket) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } } if _UseDualStack == false { if !(params.Endpoint != nil) { if _UseFIPS == false { if _Region == "aws-global" { uriString := func() string { var out strings.Builder out.WriteString("https://s3.") out.WriteString(_partitionResult.DnsSuffix) out.WriteString("/") out.WriteString(_uri_encoded_bucket) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1") return sp }(), }, }) return out }(), }, nil } } } } if _UseDualStack == false { if !(params.Endpoint != nil) { if _UseFIPS == false { if !(_Region == "aws-global") { if _UseGlobalEndpoint == true { if _Region == "us-east-1" { uriString := func() string { var out strings.Builder out.WriteString("https://s3.") out.WriteString(_partitionResult.DnsSuffix) out.WriteString("/") out.WriteString(_uri_encoded_bucket) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } uriString := func() string { var out strings.Builder out.WriteString("https://s3.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_partitionResult.DnsSuffix) out.WriteString("/") out.WriteString(_uri_encoded_bucket) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } if _UseDualStack == false { if !(params.Endpoint != nil) { if _UseFIPS == false { if !(_Region == "aws-global") { if _UseGlobalEndpoint == false { uriString := func() string { var out strings.Builder out.WriteString("https://s3.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_partitionResult.DnsSuffix) out.WriteString("/") out.WriteString(_uri_encoded_bucket) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.") } return endpoint, fmt.Errorf("endpoint rule error, %s", "Path-style addressing cannot be used with S3 Accelerate") } return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.") } if exprVal := params.UseObjectLambdaEndpoint; exprVal != nil { _UseObjectLambdaEndpoint := *exprVal _ = _UseObjectLambdaEndpoint if _UseObjectLambdaEndpoint == true { if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil { _partitionResult := *exprVal _ = _partitionResult if rulesfn.IsValidHostLabel(_Region, true) { if _UseDualStack == true { return endpoint, fmt.Errorf("endpoint rule error, %s", "S3 Object Lambda does not support Dual-stack") } if _Accelerate == true { return endpoint, fmt.Errorf("endpoint rule error, %s", "S3 Object Lambda does not support S3 Accelerate") } 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(_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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3-object-lambda") smithyhttp.SetSigV4ASigningName(&sp, "s3-object-lambda") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } if _UseFIPS == true { uriString := func() string { var out strings.Builder out.WriteString("https://s3-object-lambda-fips.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3-object-lambda") smithyhttp.SetSigV4ASigningName(&sp, "s3-object-lambda") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } uriString := func() string { var out strings.Builder out.WriteString("https://s3-object-lambda.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3-object-lambda") smithyhttp.SetSigV4ASigningName(&sp, "s3-object-lambda") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid region: region was not a valid DNS name.") } return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.") } } if !(params.Bucket != nil) { if exprVal := awsrulesfn.GetPartition(_Region); exprVal != nil { _partitionResult := *exprVal _ = _partitionResult if rulesfn.IsValidHostLabel(_Region, true) { if _UseFIPS == true { if _UseDualStack == true { if !(params.Endpoint != nil) { if _Region == "aws-global" { uriString := func() string { var out strings.Builder out.WriteString("https://s3-fips.dualstack.us-east-1.") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1") return sp }(), }, }) return out }(), }, nil } } } } if _UseFIPS == true { if _UseDualStack == true { if !(params.Endpoint != nil) { if !(_Region == "aws-global") { if _UseGlobalEndpoint == true { uriString := func() string { var out strings.Builder out.WriteString("https://s3-fips.dualstack.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } if _UseFIPS == true { if _UseDualStack == true { if !(params.Endpoint != nil) { if !(_Region == "aws-global") { if _UseGlobalEndpoint == false { uriString := func() string { var out strings.Builder out.WriteString("https://s3-fips.dualstack.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } if _UseFIPS == true { if _UseDualStack == false { if !(params.Endpoint != nil) { if _Region == "aws-global" { uriString := func() string { var out strings.Builder out.WriteString("https://s3-fips.us-east-1.") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1") return sp }(), }, }) return out }(), }, nil } } } } if _UseFIPS == true { if _UseDualStack == false { if !(params.Endpoint != nil) { if !(_Region == "aws-global") { if _UseGlobalEndpoint == true { uriString := func() string { var out strings.Builder out.WriteString("https://s3-fips.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } if _UseFIPS == true { if _UseDualStack == false { if !(params.Endpoint != nil) { if !(_Region == "aws-global") { if _UseGlobalEndpoint == false { uriString := func() string { var out strings.Builder out.WriteString("https://s3-fips.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } if _UseFIPS == false { if _UseDualStack == true { if !(params.Endpoint != nil) { if _Region == "aws-global" { uriString := func() string { var out strings.Builder out.WriteString("https://s3.dualstack.us-east-1.") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1") return sp }(), }, }) return out }(), }, nil } } } } if _UseFIPS == false { if _UseDualStack == true { if !(params.Endpoint != nil) { if !(_Region == "aws-global") { if _UseGlobalEndpoint == true { uriString := func() string { var out strings.Builder out.WriteString("https://s3.dualstack.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } if _UseFIPS == false { if _UseDualStack == true { if !(params.Endpoint != nil) { if !(_Region == "aws-global") { if _UseGlobalEndpoint == false { uriString := func() string { var out strings.Builder out.WriteString("https://s3.dualstack.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } if _UseFIPS == false { if _UseDualStack == false { if exprVal := params.Endpoint; exprVal != nil { _Endpoint := *exprVal _ = _Endpoint if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil { _url := *exprVal _ = _url if _Region == "aws-global" { uriString := func() string { var out strings.Builder out.WriteString(_url.Scheme) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1") return sp }(), }, }) return out }(), }, nil } } } } } if _UseFIPS == false { if _UseDualStack == false { if exprVal := params.Endpoint; exprVal != nil { _Endpoint := *exprVal _ = _Endpoint if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil { _url := *exprVal _ = _url if !(_Region == "aws-global") { if _UseGlobalEndpoint == true { if _Region == "us-east-1" { uriString := func() string { var out strings.Builder out.WriteString(_url.Scheme) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } uriString := func() string { var out strings.Builder out.WriteString(_url.Scheme) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } } if _UseFIPS == false { if _UseDualStack == false { if exprVal := params.Endpoint; exprVal != nil { _Endpoint := *exprVal _ = _Endpoint if exprVal := rulesfn.ParseURL(_Endpoint); exprVal != nil { _url := *exprVal _ = _url if !(_Region == "aws-global") { if _UseGlobalEndpoint == false { uriString := func() string { var out strings.Builder out.WriteString(_url.Scheme) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } } if _UseFIPS == false { if _UseDualStack == false { if !(params.Endpoint != nil) { if _Region == "aws-global" { uriString := func() string { var out strings.Builder out.WriteString("https://s3.") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, "us-east-1") return sp }(), }, }) return out }(), }, nil } } } } if _UseFIPS == false { if _UseDualStack == false { if !(params.Endpoint != nil) { if !(_Region == "aws-global") { if _UseGlobalEndpoint == true { if _Region == "us-east-1" { uriString := func() string { var out strings.Builder out.WriteString("https://s3.") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } uriString := func() string { var out strings.Builder out.WriteString("https://s3.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } if _UseFIPS == false { if _UseDualStack == false { if !(params.Endpoint != nil) { if !(_Region == "aws-global") { if _UseGlobalEndpoint == false { uriString := func() string { var out strings.Builder out.WriteString("https://s3.") out.WriteString(_Region) out.WriteString(".") out.WriteString(_partitionResult.DnsSuffix) 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#sigv4", SignerProperties: func() smithy.Properties { var sp smithy.Properties smithyhttp.SetDisableDoubleEncoding(&sp, true) smithyhttp.SetSigV4SigningName(&sp, "s3") smithyhttp.SetSigV4ASigningName(&sp, "s3") smithyhttp.SetSigV4SigningRegion(&sp, _Region) return sp }(), }, }) return out }(), }, nil } } } } } return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.") } return endpoint, fmt.Errorf("endpoint rule error, %s", "Invalid region: region was not a valid DNS name.") } return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.") } return endpoint, fmt.Errorf("Endpoint resolution failed. Invalid operation or environment input.") } return endpoint, fmt.Errorf("endpoint rule error, %s", "A region must be set when sending requests to S3.") } type endpointParamsBinder interface { bindEndpointParams(*EndpointParameters) } func bindEndpointParams(ctx context.Context, input interface{}, options Options) *EndpointParameters { params := &EndpointParameters{} params.Region = bindRegion(options.Region) params.UseFIPS = aws.Bool(options.EndpointOptions.UseFIPSEndpoint == aws.FIPSEndpointStateEnabled) params.UseDualStack = aws.Bool(options.EndpointOptions.UseDualStackEndpoint == aws.DualStackEndpointStateEnabled) params.Endpoint = options.BaseEndpoint params.ForcePathStyle = aws.Bool(options.UsePathStyle) params.Accelerate = aws.Bool(options.UseAccelerate) params.DisableMultiRegionAccessPoints = aws.Bool(options.DisableMultiRegionAccessPoints) params.UseArnRegion = aws.Bool(options.UseARNRegion) params.DisableS3ExpressSessionAuth = options.DisableS3ExpressSessionAuth if b, ok := input.(endpointParamsBinder); ok { b.bindEndpointParams(params) } return params } type resolveEndpointV2Middleware struct { options Options } func (*resolveEndpointV2Middleware) ID() string { return "ResolveEndpointV2" } func (m *resolveEndpointV2Middleware) HandleFinalize(ctx context.Context, in middleware.FinalizeInput, next middleware.FinalizeHandler) ( out middleware.FinalizeOutput, metadata middleware.Metadata, err error, ) { if awsmiddleware.GetRequiresLegacyEndpoints(ctx) { return next.HandleFinalize(ctx, in) } if err := checkAccountID(getIdentity(ctx), m.options.AccountIDEndpointMode); err != nil { return out, metadata, fmt.Errorf("invalid accountID set: %w", err) } req, ok := in.Request.(*smithyhttp.Request) if !ok { return out, metadata, fmt.Errorf("unknown transport type %T", in.Request) } if m.options.EndpointResolverV2 == nil { return out, metadata, fmt.Errorf("expected endpoint resolver to not be nil") } params := bindEndpointParams(ctx, getOperationInput(ctx), m.options) endpt, err := m.options.EndpointResolverV2.ResolveEndpoint(ctx, *params) if err != nil { return out, metadata, fmt.Errorf("failed to resolve service endpoint, %w", err) } if endpt.URI.RawPath == "" && req.URL.RawPath != "" { endpt.URI.RawPath = endpt.URI.Path } req.URL.Scheme = endpt.URI.Scheme req.URL.Host = endpt.URI.Host req.URL.Path = smithyhttp.JoinPath(endpt.URI.Path, req.URL.Path) req.URL.RawPath = smithyhttp.JoinPath(endpt.URI.RawPath, req.URL.RawPath) for k := range endpt.Headers { req.Header.Set(k, endpt.Headers.Get(k)) } rscheme := getResolvedAuthScheme(ctx) if rscheme == nil { return out, metadata, fmt.Errorf("no resolved auth scheme") } opts, _ := smithyauth.GetAuthOptions(&endpt.Properties) for _, o := range opts { rscheme.SignerProperties.SetAll(&o.SignerProperties) } backend := s3cust.GetPropertiesBackend(&endpt.Properties) ctx = internalcontext.SetS3Backend(ctx, backend) return next.HandleFinalize(ctx, in) }