Upgrade aws-sdk-go

This commit is contained in:
Peter Rifel 2021-07-15 10:26:07 -04:00
parent e187359069
commit 98bed37ffa
No known key found for this signature in database
GPG Key ID: BC6469E5B16DB2B6
53 changed files with 10492 additions and 2556 deletions

4
go.mod
View File

@ -47,7 +47,7 @@ require (
github.com/aliyun/alibaba-cloud-sdk-go v1.61.1059 github.com/aliyun/alibaba-cloud-sdk-go v1.61.1059
github.com/apparentlymart/go-cidr v1.1.0 github.com/apparentlymart/go-cidr v1.1.0
github.com/aws/amazon-ec2-instance-selector/v2 v2.0.2 github.com/aws/amazon-ec2-instance-selector/v2 v2.0.2
github.com/aws/aws-sdk-go v1.38.29 github.com/aws/aws-sdk-go v1.40.0
github.com/blang/semver/v4 v4.0.0 github.com/blang/semver/v4 v4.0.0
github.com/denverdino/aliyungo v0.0.0-20210425065611-55bee4942cba github.com/denverdino/aliyungo v0.0.0-20210425065611-55bee4942cba
github.com/digitalocean/godo v1.60.0 github.com/digitalocean/godo v1.60.0
@ -76,7 +76,7 @@ require (
github.com/weaveworks/mesh v0.0.0-20191105120815-58dbcc3e8e63 github.com/weaveworks/mesh v0.0.0-20191105120815-58dbcc3e8e63
github.com/zclconf/go-cty v1.8.2 github.com/zclconf/go-cty v1.8.2
golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a
golang.org/x/net v0.0.0-20210525063256-abc453219eb5 golang.org/x/net v0.0.0-20210614182718-04defd469f4e
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c
golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40 golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40
google.golang.org/api v0.45.0 google.golang.org/api v0.45.0

8
go.sum
View File

@ -175,8 +175,8 @@ github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN
github.com/aws/aws-sdk-go v1.31.12/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.31.12/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
github.com/aws/aws-sdk-go v1.34.30/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48= github.com/aws/aws-sdk-go v1.34.30/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48=
github.com/aws/aws-sdk-go v1.35.24/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k= github.com/aws/aws-sdk-go v1.35.24/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k=
github.com/aws/aws-sdk-go v1.38.29 h1:Go3a0Bw3V12he3XuefJsZ1CICn1wjmn6lp+FjICQR2w= github.com/aws/aws-sdk-go v1.40.0 h1:nTCSQAeahNt15SOYxuDwJ8XvMhOU3Uqe7eJUPv7+Vsk=
github.com/aws/aws-sdk-go v1.38.29/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= github.com/aws/aws-sdk-go v1.40.0/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q=
github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g=
github.com/beorn7/perks v0.0.0-20160804104726-4c0e84591b9a/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v0.0.0-20160804104726-4c0e84591b9a/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
@ -1330,8 +1330,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v
golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
golang.org/x/net v0.0.0-20210525063256-abc453219eb5 h1:wjuX4b5yYQnEQHzd+CBcrcC6OVR2J1CN6mUy0oSxIPo= golang.org/x/net v0.0.0-20210614182718-04defd469f4e h1:XpT3nA5TvE525Ne3hInMh6+GETgn27Zfm9dxsThnX2Q=
golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=

View File

@ -243,8 +243,8 @@ github.com/aws/aws-sdk-go v1.31.6/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU
github.com/aws/aws-sdk-go v1.31.12/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.31.12/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
github.com/aws/aws-sdk-go v1.34.30/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48= github.com/aws/aws-sdk-go v1.34.30/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48=
github.com/aws/aws-sdk-go v1.35.24/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k= github.com/aws/aws-sdk-go v1.35.24/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k=
github.com/aws/aws-sdk-go v1.38.29 h1:Go3a0Bw3V12he3XuefJsZ1CICn1wjmn6lp+FjICQR2w= github.com/aws/aws-sdk-go v1.40.0 h1:nTCSQAeahNt15SOYxuDwJ8XvMhOU3Uqe7eJUPv7+Vsk=
github.com/aws/aws-sdk-go v1.38.29/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= github.com/aws/aws-sdk-go v1.40.0/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q=
github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g=
github.com/bazelbuild/buildtools v0.0.0-20190917191645-69366ca98f89/go.mod h1:5JP0TXzWDHXv8qvxRC4InIazwdyDseBDbzESUMKk1yU= github.com/bazelbuild/buildtools v0.0.0-20190917191645-69366ca98f89/go.mod h1:5JP0TXzWDHXv8qvxRC4InIazwdyDseBDbzESUMKk1yU=
github.com/bazelbuild/rules_go v0.22.1/go.mod h1:MC23Dc/wkXEyk3Wpq6lCqz0ZAYOZDw2DR5y3N1q2i7M= github.com/bazelbuild/rules_go v0.22.1/go.mod h1:MC23Dc/wkXEyk3Wpq6lCqz0ZAYOZDw2DR5y3N1q2i7M=
@ -1656,8 +1656,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v
golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
golang.org/x/net v0.0.0-20210525063256-abc453219eb5 h1:wjuX4b5yYQnEQHzd+CBcrcC6OVR2J1CN6mUy0oSxIPo= golang.org/x/net v0.0.0-20210614182718-04defd469f4e h1:XpT3nA5TvE525Ne3hInMh6+GETgn27Zfm9dxsThnX2Q=
golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=

View File

@ -13,7 +13,6 @@ package ec2metadata
import ( import (
"bytes" "bytes"
"errors"
"io" "io"
"net/http" "net/http"
"net/url" "net/url"
@ -234,7 +233,8 @@ func unmarshalError(r *request.Request) {
// Response body format is not consistent between metadata endpoints. // Response body format is not consistent between metadata endpoints.
// Grab the error message as a string and include that as the source error // Grab the error message as a string and include that as the source error
r.Error = awserr.NewRequestFailure(awserr.New("EC2MetadataError", "failed to make EC2Metadata request", errors.New(b.String())), r.Error = awserr.NewRequestFailure(
awserr.New("EC2MetadataError", "failed to make EC2Metadata request\n"+b.String(), nil),
r.HTTPResponse.StatusCode, r.RequestID) r.HTTPResponse.StatusCode, r.RequestID)
} }

View File

@ -81,7 +81,6 @@ func decodeV3Endpoints(modelDef modelDefinition, opts DecodeModelOptions) (Resol
// Customization // Customization
for i := 0; i < len(ps); i++ { for i := 0; i < len(ps); i++ {
p := &ps[i] p := &ps[i]
custAddEC2Metadata(p)
custAddS3DualStack(p) custAddS3DualStack(p)
custRegionalS3(p) custRegionalS3(p)
custRmIotDataService(p) custRmIotDataService(p)
@ -140,19 +139,6 @@ func custAddDualstack(p *partition, svcName string) {
p.Services[svcName] = s p.Services[svcName] = s
} }
func custAddEC2Metadata(p *partition) {
p.Services["ec2metadata"] = service{
IsRegionalized: boxedFalse,
PartitionEndpoint: "aws-global",
Endpoints: endpoints{
"aws-global": endpoint{
Hostname: "169.254.169.254/latest",
Protocols: []string{"http"},
},
},
}
}
func custRmIotDataService(p *partition) { func custRmIotDataService(p *partition) {
delete(p.Services, "data.iot") delete(p.Services, "data.iot")
} }

View File

@ -302,6 +302,7 @@ var awsPartition = partition{
"ap-east-1": endpoint{}, "ap-east-1": endpoint{},
"ap-northeast-1": endpoint{}, "ap-northeast-1": endpoint{},
"ap-northeast-2": endpoint{}, "ap-northeast-2": endpoint{},
"ap-northeast-3": endpoint{},
"ap-south-1": endpoint{}, "ap-south-1": endpoint{},
"ap-southeast-1": endpoint{}, "ap-southeast-1": endpoint{},
"ap-southeast-2": endpoint{}, "ap-southeast-2": endpoint{},
@ -637,7 +638,43 @@ var awsPartition = partition{
"api.fleethub.iot": service{ "api.fleethub.iot": service{
Endpoints: endpoints{ Endpoints: endpoints{
"ap-northeast-1": endpoint{},
"ap-northeast-2": endpoint{},
"ap-south-1": endpoint{},
"ap-southeast-1": endpoint{},
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
"eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"fips-ca-central-1": endpoint{
Hostname: "api.fleethub.iot-fips.ca-central-1.amazonaws.com",
CredentialScope: credentialScope{
Region: "ca-central-1",
},
},
"fips-us-east-1": endpoint{
Hostname: "api.fleethub.iot-fips.us-east-1.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-east-1",
},
},
"fips-us-east-2": endpoint{
Hostname: "api.fleethub.iot-fips.us-east-2.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-east-2",
},
},
"fips-us-west-2": endpoint{
Hostname: "api.fleethub.iot-fips.us-west-2.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-west-2",
},
},
"us-east-1": endpoint{}, "us-east-1": endpoint{},
"us-east-2": endpoint{},
"us-west-2": endpoint{},
}, },
}, },
"api.mediatailor": service{ "api.mediatailor": service{
@ -824,6 +861,16 @@ var awsPartition = partition{
"us-west-2": endpoint{}, "us-west-2": endpoint{},
}, },
}, },
"apprunner": service{
Endpoints: endpoints{
"ap-northeast-1": endpoint{},
"eu-west-1": endpoint{},
"us-east-1": endpoint{},
"us-east-2": endpoint{},
"us-west-2": endpoint{},
},
},
"appstream2": service{ "appstream2": service{
Defaults: endpoint{ Defaults: endpoint{
Protocols: []string{"https"}, Protocols: []string{"https"},
@ -839,6 +886,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{}, "ap-southeast-2": endpoint{},
"eu-central-1": endpoint{}, "eu-central-1": endpoint{},
"eu-west-1": endpoint{}, "eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"fips": endpoint{ "fips": endpoint{
Hostname: "appstream2-fips.us-west-2.amazonaws.com", Hostname: "appstream2-fips.us-west-2.amazonaws.com",
CredentialScope: credentialScope{ CredentialScope: credentialScope{
@ -855,6 +903,7 @@ var awsPartition = partition{
"ap-east-1": endpoint{}, "ap-east-1": endpoint{},
"ap-northeast-1": endpoint{}, "ap-northeast-1": endpoint{},
"ap-northeast-2": endpoint{}, "ap-northeast-2": endpoint{},
"ap-northeast-3": endpoint{},
"ap-south-1": endpoint{}, "ap-south-1": endpoint{},
"ap-southeast-1": endpoint{}, "ap-southeast-1": endpoint{},
"ap-southeast-2": endpoint{}, "ap-southeast-2": endpoint{},
@ -959,6 +1008,7 @@ var awsPartition = partition{
"ap-east-1": endpoint{}, "ap-east-1": endpoint{},
"ap-northeast-1": endpoint{}, "ap-northeast-1": endpoint{},
"ap-northeast-2": endpoint{}, "ap-northeast-2": endpoint{},
"ap-northeast-3": endpoint{},
"ap-south-1": endpoint{}, "ap-south-1": endpoint{},
"ap-southeast-1": endpoint{}, "ap-southeast-1": endpoint{},
"ap-southeast-2": endpoint{}, "ap-southeast-2": endpoint{},
@ -1592,11 +1642,12 @@ var awsPartition = partition{
Region: "us-west-2", Region: "us-west-2",
}, },
}, },
"sa-east-1": endpoint{}, "me-south-1": endpoint{},
"us-east-1": endpoint{}, "sa-east-1": endpoint{},
"us-east-2": endpoint{}, "us-east-1": endpoint{},
"us-west-1": endpoint{}, "us-east-2": endpoint{},
"us-west-2": endpoint{}, "us-west-1": endpoint{},
"us-west-2": endpoint{},
}, },
}, },
"cognito-idp": service{ "cognito-idp": service{
@ -1637,11 +1688,12 @@ var awsPartition = partition{
Region: "us-west-2", Region: "us-west-2",
}, },
}, },
"sa-east-1": endpoint{}, "me-south-1": endpoint{},
"us-east-1": endpoint{}, "sa-east-1": endpoint{},
"us-east-2": endpoint{}, "us-east-1": endpoint{},
"us-west-1": endpoint{}, "us-east-2": endpoint{},
"us-west-2": endpoint{}, "us-west-1": endpoint{},
"us-west-2": endpoint{},
}, },
}, },
"cognito-sync": service{ "cognito-sync": service{
@ -2344,17 +2396,6 @@ var awsPartition = partition{
"us-west-2": endpoint{}, "us-west-2": endpoint{},
}, },
}, },
"ec2metadata": service{
PartitionEndpoint: "aws-global",
IsRegionalized: boxedFalse,
Endpoints: endpoints{
"aws-global": endpoint{
Hostname: "169.254.169.254/latest",
Protocols: []string{"http"},
},
},
},
"ecs": service{ "ecs": service{
Endpoints: endpoints{ Endpoints: endpoints{
@ -2840,8 +2881,11 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{}, "ap-southeast-2": endpoint{},
"ca-central-1": endpoint{}, "ca-central-1": endpoint{},
"eu-central-1": endpoint{}, "eu-central-1": endpoint{},
"eu-north-1": endpoint{},
"eu-west-1": endpoint{}, "eu-west-1": endpoint{},
"eu-west-2": endpoint{}, "eu-west-2": endpoint{},
"eu-west-3": endpoint{},
"sa-east-1": endpoint{},
"us-east-1": endpoint{}, "us-east-1": endpoint{},
"us-east-2": endpoint{}, "us-east-2": endpoint{},
"us-west-1": endpoint{}, "us-west-1": endpoint{},
@ -2940,6 +2984,26 @@ var awsPartition = partition{
"us-west-2": endpoint{}, "us-west-2": endpoint{},
}, },
}, },
"finspace": service{
Endpoints: endpoints{
"ca-central-1": endpoint{},
"eu-west-1": endpoint{},
"us-east-1": endpoint{},
"us-east-2": endpoint{},
"us-west-2": endpoint{},
},
},
"finspace-api": service{
Endpoints: endpoints{
"ca-central-1": endpoint{},
"eu-west-1": endpoint{},
"us-east-1": endpoint{},
"us-east-2": endpoint{},
"us-west-2": endpoint{},
},
},
"firehose": service{ "firehose": service{
Endpoints: endpoints{ Endpoints: endpoints{
@ -2999,6 +3063,7 @@ var awsPartition = partition{
"ap-east-1": endpoint{}, "ap-east-1": endpoint{},
"ap-northeast-1": endpoint{}, "ap-northeast-1": endpoint{},
"ap-northeast-2": endpoint{}, "ap-northeast-2": endpoint{},
"ap-northeast-3": endpoint{},
"ap-south-1": endpoint{}, "ap-south-1": endpoint{},
"ap-southeast-1": endpoint{}, "ap-southeast-1": endpoint{},
"ap-southeast-2": endpoint{}, "ap-southeast-2": endpoint{},
@ -3141,9 +3206,27 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{}, "ap-southeast-2": endpoint{},
"eu-central-1": endpoint{}, "eu-central-1": endpoint{},
"eu-west-1": endpoint{}, "eu-west-1": endpoint{},
"us-east-1": endpoint{}, "fips-us-east-1": endpoint{
"us-east-2": endpoint{}, Hostname: "forecast-fips.us-east-1.amazonaws.com",
"us-west-2": endpoint{}, CredentialScope: credentialScope{
Region: "us-east-1",
},
},
"fips-us-east-2": endpoint{
Hostname: "forecast-fips.us-east-2.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-east-2",
},
},
"fips-us-west-2": endpoint{
Hostname: "forecast-fips.us-west-2.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-west-2",
},
},
"us-east-1": endpoint{},
"us-east-2": endpoint{},
"us-west-2": endpoint{},
}, },
}, },
"forecastquery": service{ "forecastquery": service{
@ -3156,9 +3239,27 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{}, "ap-southeast-2": endpoint{},
"eu-central-1": endpoint{}, "eu-central-1": endpoint{},
"eu-west-1": endpoint{}, "eu-west-1": endpoint{},
"us-east-1": endpoint{}, "fips-us-east-1": endpoint{
"us-east-2": endpoint{}, Hostname: "forecastquery-fips.us-east-1.amazonaws.com",
"us-west-2": endpoint{}, CredentialScope: credentialScope{
Region: "us-east-1",
},
},
"fips-us-east-2": endpoint{
Hostname: "forecastquery-fips.us-east-2.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-east-2",
},
},
"fips-us-west-2": endpoint{
Hostname: "forecastquery-fips.us-west-2.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-west-2",
},
},
"us-east-1": endpoint{},
"us-east-2": endpoint{},
"us-west-2": endpoint{},
}, },
}, },
"fsx": service{ "fsx": service{
@ -3372,6 +3473,7 @@ var awsPartition = partition{
Endpoints: endpoints{ Endpoints: endpoints{
"af-south-1": endpoint{}, "af-south-1": endpoint{},
"ap-northeast-2": endpoint{},
"ap-southeast-2": endpoint{}, "ap-southeast-2": endpoint{},
"eu-central-1": endpoint{}, "eu-central-1": endpoint{},
"eu-north-1": endpoint{}, "eu-north-1": endpoint{},
@ -3470,6 +3572,8 @@ var awsPartition = partition{
}, },
Endpoints: endpoints{ Endpoints: endpoints{
"us-east-1": endpoint{}, "us-east-1": endpoint{},
"us-east-2": endpoint{},
"us-west-2": endpoint{},
}, },
}, },
"honeycode": service{ "honeycode": service{
@ -3731,6 +3835,18 @@ var awsPartition = partition{
"iotwireless": service{ "iotwireless": service{
Endpoints: endpoints{ Endpoints: endpoints{
"ap-northeast-1": endpoint{
Hostname: "api.iotwireless.ap-northeast-1.amazonaws.com",
CredentialScope: credentialScope{
Region: "ap-northeast-1",
},
},
"ap-southeast-2": endpoint{
Hostname: "api.iotwireless.ap-southeast-2.amazonaws.com",
CredentialScope: credentialScope{
Region: "ap-southeast-2",
},
},
"eu-west-1": endpoint{ "eu-west-1": endpoint{
Hostname: "api.iotwireless.eu-west-1.amazonaws.com", Hostname: "api.iotwireless.eu-west-1.amazonaws.com",
CredentialScope: credentialScope{ CredentialScope: credentialScope{
@ -3743,6 +3859,12 @@ var awsPartition = partition{
Region: "us-east-1", Region: "us-east-1",
}, },
}, },
"us-west-2": endpoint{
Hostname: "api.iotwireless.us-west-2.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-west-2",
},
},
}, },
}, },
"kafka": service{ "kafka": service{
@ -3892,6 +4014,7 @@ var awsPartition = partition{
"lakeformation": service{ "lakeformation": service{
Endpoints: endpoints{ Endpoints: endpoints{
"af-south-1": endpoint{},
"ap-east-1": endpoint{}, "ap-east-1": endpoint{},
"ap-northeast-1": endpoint{}, "ap-northeast-1": endpoint{},
"ap-northeast-2": endpoint{}, "ap-northeast-2": endpoint{},
@ -4047,6 +4170,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{}, "ap-southeast-2": endpoint{},
"ca-central-1": endpoint{}, "ca-central-1": endpoint{},
"eu-central-1": endpoint{}, "eu-central-1": endpoint{},
"eu-north-1": endpoint{},
"eu-west-1": endpoint{}, "eu-west-1": endpoint{},
"eu-west-2": endpoint{}, "eu-west-2": endpoint{},
"eu-west-3": endpoint{}, "eu-west-3": endpoint{},
@ -4724,6 +4848,12 @@ var awsPartition = partition{
Region: "eu-west-2", Region: "eu-west-2",
}, },
}, },
"eu-west-3": endpoint{
Hostname: "oidc.eu-west-3.amazonaws.com",
CredentialScope: credentialScope{
Region: "eu-west-3",
},
},
"us-east-1": endpoint{ "us-east-1": endpoint{
Hostname: "oidc.us-east-1.amazonaws.com", Hostname: "oidc.us-east-1.amazonaws.com",
CredentialScope: credentialScope{ CredentialScope: credentialScope{
@ -4804,6 +4934,7 @@ var awsPartition = partition{
"ap-east-1": endpoint{}, "ap-east-1": endpoint{},
"ap-northeast-1": endpoint{}, "ap-northeast-1": endpoint{},
"ap-northeast-2": endpoint{}, "ap-northeast-2": endpoint{},
"ap-northeast-3": endpoint{},
"ap-south-1": endpoint{}, "ap-south-1": endpoint{},
"ap-southeast-1": endpoint{}, "ap-southeast-1": endpoint{},
"ap-southeast-2": endpoint{}, "ap-southeast-2": endpoint{},
@ -5022,6 +5153,7 @@ var awsPartition = partition{
"ap-northeast-1": endpoint{}, "ap-northeast-1": endpoint{},
"ap-southeast-1": endpoint{}, "ap-southeast-1": endpoint{},
"ap-southeast-2": endpoint{}, "ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{}, "eu-central-1": endpoint{},
"eu-west-2": endpoint{}, "eu-west-2": endpoint{},
"us-east-1": endpoint{}, "us-east-1": endpoint{},
@ -5049,9 +5181,28 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{}, "ap-southeast-2": endpoint{},
"eu-central-1": endpoint{}, "eu-central-1": endpoint{},
"eu-west-1": endpoint{}, "eu-west-1": endpoint{},
"us-east-1": endpoint{}, "eu-west-2": endpoint{},
"us-east-2": endpoint{}, "fips-us-east-1": endpoint{
"us-west-2": endpoint{}, Hostname: "qldb-fips.us-east-1.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-east-1",
},
},
"fips-us-east-2": endpoint{
Hostname: "qldb-fips.us-east-2.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-east-2",
},
},
"fips-us-west-2": endpoint{
Hostname: "qldb-fips.us-west-2.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-west-2",
},
},
"us-east-1": endpoint{},
"us-east-2": endpoint{},
"us-west-2": endpoint{},
}, },
}, },
"ram": service{ "ram": service{
@ -5368,6 +5519,7 @@ var awsPartition = partition{
"ap-east-1": endpoint{}, "ap-east-1": endpoint{},
"ap-northeast-1": endpoint{}, "ap-northeast-1": endpoint{},
"ap-northeast-2": endpoint{}, "ap-northeast-2": endpoint{},
"ap-northeast-3": endpoint{},
"ap-south-1": endpoint{}, "ap-south-1": endpoint{},
"ap-southeast-1": endpoint{}, "ap-southeast-1": endpoint{},
"ap-southeast-2": endpoint{}, "ap-southeast-2": endpoint{},
@ -6069,6 +6221,61 @@ var awsPartition = partition{
}, },
}, },
}, },
"servicecatalog-appregistry": service{
Endpoints: endpoints{
"af-south-1": endpoint{},
"ap-east-1": endpoint{},
"ap-northeast-1": endpoint{},
"ap-northeast-2": endpoint{},
"ap-south-1": endpoint{},
"ap-southeast-1": endpoint{},
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
"eu-north-1": endpoint{},
"eu-south-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
"fips-ca-central-1": endpoint{
Hostname: "servicecatalog-appregistry-fips.ca-central-1.amazonaws.com",
CredentialScope: credentialScope{
Region: "ca-central-1",
},
},
"fips-us-east-1": endpoint{
Hostname: "servicecatalog-appregistry-fips.us-east-1.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-east-1",
},
},
"fips-us-east-2": endpoint{
Hostname: "servicecatalog-appregistry-fips.us-east-2.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-east-2",
},
},
"fips-us-west-1": endpoint{
Hostname: "servicecatalog-appregistry-fips.us-west-1.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-west-1",
},
},
"fips-us-west-2": endpoint{
Hostname: "servicecatalog-appregistry-fips.us-west-2.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-west-2",
},
},
"me-south-1": endpoint{},
"sa-east-1": endpoint{},
"us-east-1": endpoint{},
"us-east-2": endpoint{},
"us-west-1": endpoint{},
"us-west-2": endpoint{},
},
},
"servicediscovery": service{ "servicediscovery": service{
Endpoints: endpoints{ Endpoints: endpoints{
@ -6137,9 +6344,28 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{}, "ap-southeast-2": endpoint{},
"eu-central-1": endpoint{}, "eu-central-1": endpoint{},
"eu-west-1": endpoint{}, "eu-west-1": endpoint{},
"us-east-1": endpoint{}, "eu-west-2": endpoint{},
"us-east-2": endpoint{}, "fips-us-east-1": endpoint{
"us-west-2": endpoint{}, Hostname: "session.qldb-fips.us-east-1.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-east-1",
},
},
"fips-us-east-2": endpoint{
Hostname: "session.qldb-fips.us-east-2.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-east-2",
},
},
"fips-us-west-2": endpoint{
Hostname: "session.qldb-fips.us-west-2.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-west-2",
},
},
"us-east-1": endpoint{},
"us-east-2": endpoint{},
"us-west-2": endpoint{},
}, },
}, },
"shield": service{ "shield": service{
@ -6554,6 +6780,7 @@ var awsPartition = partition{
"ap-east-1": endpoint{}, "ap-east-1": endpoint{},
"ap-northeast-1": endpoint{}, "ap-northeast-1": endpoint{},
"ap-northeast-2": endpoint{}, "ap-northeast-2": endpoint{},
"ap-northeast-3": endpoint{},
"ap-south-1": endpoint{}, "ap-south-1": endpoint{},
"ap-southeast-1": endpoint{}, "ap-southeast-1": endpoint{},
"ap-southeast-2": endpoint{}, "ap-southeast-2": endpoint{},
@ -6864,6 +7091,7 @@ var awsPartition = partition{
"ca-central-1": endpoint{}, "ca-central-1": endpoint{},
"eu-central-1": endpoint{}, "eu-central-1": endpoint{},
"eu-north-1": endpoint{}, "eu-north-1": endpoint{},
"eu-south-1": endpoint{},
"eu-west-1": endpoint{}, "eu-west-1": endpoint{},
"eu-west-2": endpoint{}, "eu-west-2": endpoint{},
"eu-west-3": endpoint{}, "eu-west-3": endpoint{},
@ -6992,6 +7220,12 @@ var awsPartition = partition{
Region: "ap-northeast-2", Region: "ap-northeast-2",
}, },
}, },
"ap-northeast-3": endpoint{
Hostname: "waf-regional.ap-northeast-3.amazonaws.com",
CredentialScope: credentialScope{
Region: "ap-northeast-3",
},
},
"ap-south-1": endpoint{ "ap-south-1": endpoint{
Hostname: "waf-regional.ap-south-1.amazonaws.com", Hostname: "waf-regional.ap-south-1.amazonaws.com",
CredentialScope: credentialScope{ CredentialScope: credentialScope{
@ -7076,6 +7310,12 @@ var awsPartition = partition{
Region: "ap-northeast-2", Region: "ap-northeast-2",
}, },
}, },
"fips-ap-northeast-3": endpoint{
Hostname: "waf-regional-fips.ap-northeast-3.amazonaws.com",
CredentialScope: credentialScope{
Region: "ap-northeast-3",
},
},
"fips-ap-south-1": endpoint{ "fips-ap-south-1": endpoint{
Hostname: "waf-regional-fips.ap-south-1.amazonaws.com", Hostname: "waf-regional-fips.ap-south-1.amazonaws.com",
CredentialScope: credentialScope{ CredentialScope: credentialScope{
@ -7611,17 +7851,6 @@ var awscnPartition = partition{
"cn-northwest-1": endpoint{}, "cn-northwest-1": endpoint{},
}, },
}, },
"ec2metadata": service{
PartitionEndpoint: "aws-global",
IsRegionalized: boxedFalse,
Endpoints: endpoints{
"aws-global": endpoint{
Hostname: "169.254.169.254/latest",
Protocols: []string{"http"},
},
},
},
"ecs": service{ "ecs": service{
Endpoints: endpoints{ Endpoints: endpoints{
@ -8068,6 +8297,13 @@ var awscnPartition = partition{
}, },
}, },
}, },
"servicecatalog": service{
Endpoints: endpoints{
"cn-north-1": endpoint{},
"cn-northwest-1": endpoint{},
},
},
"servicediscovery": service{ "servicediscovery": service{
Endpoints: endpoints{ Endpoints: endpoints{
@ -8205,6 +8441,49 @@ var awscnPartition = partition{
}, },
}, },
}, },
"transcribestreaming": service{
Endpoints: endpoints{
"cn-north-1": endpoint{},
"cn-northwest-1": endpoint{},
},
},
"transfer": service{
Endpoints: endpoints{
"cn-north-1": endpoint{},
"cn-northwest-1": endpoint{},
},
},
"waf-regional": service{
Endpoints: endpoints{
"cn-north-1": endpoint{
Hostname: "waf-regional.cn-north-1.amazonaws.com.cn",
CredentialScope: credentialScope{
Region: "cn-north-1",
},
},
"cn-northwest-1": endpoint{
Hostname: "waf-regional.cn-northwest-1.amazonaws.com.cn",
CredentialScope: credentialScope{
Region: "cn-northwest-1",
},
},
"fips-cn-north-1": endpoint{
Hostname: "waf-regional-fips.cn-north-1.amazonaws.com.cn",
CredentialScope: credentialScope{
Region: "cn-north-1",
},
},
"fips-cn-northwest-1": endpoint{
Hostname: "waf-regional-fips.cn-northwest-1.amazonaws.com.cn",
CredentialScope: credentialScope{
Region: "cn-northwest-1",
},
},
},
},
"workspaces": service{ "workspaces": service{
Endpoints: endpoints{ Endpoints: endpoints{
@ -8812,17 +9091,6 @@ var awsusgovPartition = partition{
}, },
}, },
}, },
"ec2metadata": service{
PartitionEndpoint: "aws-global",
IsRegionalized: boxedFalse,
Endpoints: endpoints{
"aws-global": endpoint{
Hostname: "169.254.169.254/latest",
Protocols: []string{"http"},
},
},
},
"ecs": service{ "ecs": service{
Endpoints: endpoints{ Endpoints: endpoints{
@ -9387,6 +9655,25 @@ var awsusgovPartition = partition{
"us-gov-west-1": endpoint{}, "us-gov-west-1": endpoint{},
}, },
}, },
"mq": service{
Endpoints: endpoints{
"fips-us-gov-east-1": endpoint{
Hostname: "mq-fips.us-gov-east-1.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-gov-east-1",
},
},
"fips-us-gov-west-1": endpoint{
Hostname: "mq-fips.us-gov-west-1.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-gov-west-1",
},
},
"us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
},
},
"neptune": service{ "neptune": service{
Endpoints: endpoints{ Endpoints: endpoints{
@ -9768,6 +10055,25 @@ var awsusgovPartition = partition{
}, },
}, },
}, },
"servicecatalog-appregistry": service{
Endpoints: endpoints{
"fips-us-gov-east-1": endpoint{
Hostname: "servicecatalog-appregistry.us-gov-east-1.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-gov-east-1",
},
},
"fips-us-gov-west-1": endpoint{
Hostname: "servicecatalog-appregistry.us-gov-west-1.amazonaws.com",
CredentialScope: credentialScope{
Region: "us-gov-west-1",
},
},
"us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
},
},
"servicequotas": service{ "servicequotas": service{
Defaults: endpoint{ Defaults: endpoint{
Protocols: []string{"https"}, Protocols: []string{"https"},
@ -10257,17 +10563,6 @@ var awsisoPartition = partition{
"us-iso-east-1": endpoint{}, "us-iso-east-1": endpoint{},
}, },
}, },
"ec2metadata": service{
PartitionEndpoint: "aws-global",
IsRegionalized: boxedFalse,
Endpoints: endpoints{
"aws-global": endpoint{
Hostname: "169.254.169.254/latest",
Protocols: []string{"http"},
},
},
},
"ecs": service{ "ecs": service{
Endpoints: endpoints{ Endpoints: endpoints{
@ -10280,6 +10575,18 @@ var awsisoPartition = partition{
"us-iso-east-1": endpoint{}, "us-iso-east-1": endpoint{},
}, },
}, },
"elasticfilesystem": service{
Endpoints: endpoints{
"fips-us-iso-east-1": endpoint{
Hostname: "elasticfilesystem-fips.us-iso-east-1.c2s.ic.gov",
CredentialScope: credentialScope{
Region: "us-iso-east-1",
},
},
"us-iso-east-1": endpoint{},
},
},
"elasticloadbalancing": service{ "elasticloadbalancing": service{
Endpoints: endpoints{ Endpoints: endpoints{
@ -10395,6 +10702,12 @@ var awsisoPartition = partition{
"us-iso-east-1": endpoint{}, "us-iso-east-1": endpoint{},
}, },
}, },
"ram": service{
Endpoints: endpoints{
"us-iso-east-1": endpoint{},
},
},
"rds": service{ "rds": service{
Endpoints: endpoints{ Endpoints: endpoints{
@ -10656,17 +10969,6 @@ var awsisobPartition = partition{
"us-isob-east-1": endpoint{}, "us-isob-east-1": endpoint{},
}, },
}, },
"ec2metadata": service{
PartitionEndpoint: "aws-global",
IsRegionalized: boxedFalse,
Endpoints: endpoints{
"aws-global": endpoint{
Hostname: "169.254.169.254/latest",
Protocols: []string{"http"},
},
},
},
"ecs": service{ "ecs": service{
Endpoints: endpoints{ Endpoints: endpoints{

View File

@ -48,6 +48,9 @@ type Options struct {
// This option is ignored if StrictMatching is enabled. // This option is ignored if StrictMatching is enabled.
ResolveUnknownService bool ResolveUnknownService bool
// Specifies the EC2 Instance Metadata Service default endpoint selection mode (IPv4 or IPv6)
EC2MetadataEndpointMode EC2IMDSEndpointModeState
// STS Regional Endpoint flag helps with resolving the STS endpoint // STS Regional Endpoint flag helps with resolving the STS endpoint
STSRegionalEndpoint STSRegionalEndpoint STSRegionalEndpoint STSRegionalEndpoint
@ -55,6 +58,33 @@ type Options struct {
S3UsEast1RegionalEndpoint S3UsEast1RegionalEndpoint S3UsEast1RegionalEndpoint S3UsEast1RegionalEndpoint
} }
// EC2IMDSEndpointModeState is an enum configuration variable describing the client endpoint mode.
type EC2IMDSEndpointModeState uint
// Enumeration values for EC2IMDSEndpointModeState
const (
EC2IMDSEndpointModeStateUnset EC2IMDSEndpointModeState = iota
EC2IMDSEndpointModeStateIPv4
EC2IMDSEndpointModeStateIPv6
)
// SetFromString sets the EC2IMDSEndpointModeState based on the provided string value. Unknown values will default to EC2IMDSEndpointModeStateUnset
func (e *EC2IMDSEndpointModeState) SetFromString(v string) error {
v = strings.TrimSpace(v)
switch {
case len(v) == 0:
*e = EC2IMDSEndpointModeStateUnset
case strings.EqualFold(v, "IPv6"):
*e = EC2IMDSEndpointModeStateIPv6
case strings.EqualFold(v, "IPv4"):
*e = EC2IMDSEndpointModeStateIPv4
default:
return fmt.Errorf("unknown EC2 IMDS endpoint mode, must be either IPv6 or IPv4")
}
return nil
}
// STSRegionalEndpoint is an enum for the states of the STS Regional Endpoint // STSRegionalEndpoint is an enum for the states of the STS Regional Endpoint
// options. // options.
type STSRegionalEndpoint int type STSRegionalEndpoint int
@ -247,7 +277,7 @@ func RegionsForService(ps []Partition, partitionID, serviceID string) (map[strin
if p.ID() != partitionID { if p.ID() != partitionID {
continue continue
} }
if _, ok := p.p.Services[serviceID]; !ok { if _, ok := p.p.Services[serviceID]; !(ok || serviceID == Ec2metadataServiceID) {
break break
} }
@ -333,6 +363,7 @@ func (p Partition) Regions() map[string]Region {
// enumerating over the services in a partition. // enumerating over the services in a partition.
func (p Partition) Services() map[string]Service { func (p Partition) Services() map[string]Service {
ss := make(map[string]Service, len(p.p.Services)) ss := make(map[string]Service, len(p.p.Services))
for id := range p.p.Services { for id := range p.p.Services {
ss[id] = Service{ ss[id] = Service{
id: id, id: id,
@ -340,6 +371,15 @@ func (p Partition) Services() map[string]Service {
} }
} }
// Since we have removed the customization that injected this into the model
// we still need to pretend that this is a modeled service.
if _, ok := ss[Ec2metadataServiceID]; !ok {
ss[Ec2metadataServiceID] = Service{
id: Ec2metadataServiceID,
p: p.p,
}
}
return ss return ss
} }
@ -400,7 +440,18 @@ func (s Service) ResolveEndpoint(region string, opts ...func(*Options)) (Resolve
// an URL that can be resolved to a instance of a service. // an URL that can be resolved to a instance of a service.
func (s Service) Regions() map[string]Region { func (s Service) Regions() map[string]Region {
rs := map[string]Region{} rs := map[string]Region{}
for id := range s.p.Services[s.id].Endpoints {
service, ok := s.p.Services[s.id]
// Since ec2metadata customization has been removed we need to check
// if it was defined in non-standard endpoints.json file. If it's not
// then we can return the empty map as there is no regional-endpoints for IMDS.
// Otherwise, we iterate need to iterate the non-standard model.
if s.id == Ec2metadataServiceID && !ok {
return rs
}
for id := range service.Endpoints {
if r, ok := s.p.Regions[id]; ok { if r, ok := s.p.Regions[id]; ok {
rs[id] = Region{ rs[id] = Region{
id: id, id: id,

View File

@ -7,6 +7,11 @@ import (
"strings" "strings"
) )
const (
ec2MetadataEndpointIPv6 = "http://[fd00:ec2::254]/latest"
ec2MetadataEndpointIPv4 = "http://169.254.169.254/latest"
)
var regionValidationRegex = regexp.MustCompile(`^[[:alnum:]]([[:alnum:]\-]*[[:alnum:]])?$`) var regionValidationRegex = regexp.MustCompile(`^[[:alnum:]]([[:alnum:]\-]*[[:alnum:]])?$`)
type partitions []partition type partitions []partition
@ -102,6 +107,12 @@ func (p partition) EndpointFor(service, region string, opts ...func(*Options)) (
opt.Set(opts...) opt.Set(opts...)
s, hasService := p.Services[service] s, hasService := p.Services[service]
if service == Ec2metadataServiceID && !hasService {
endpoint := getEC2MetadataEndpoint(p.ID, service, opt.EC2MetadataEndpointMode)
return endpoint, nil
}
if len(service) == 0 || !(hasService || opt.ResolveUnknownService) { if len(service) == 0 || !(hasService || opt.ResolveUnknownService) {
// Only return error if the resolver will not fallback to creating // Only return error if the resolver will not fallback to creating
// endpoint based on service endpoint ID passed in. // endpoint based on service endpoint ID passed in.
@ -129,6 +140,31 @@ func (p partition) EndpointFor(service, region string, opts ...func(*Options)) (
return e.resolve(service, p.ID, region, p.DNSSuffix, defs, opt) return e.resolve(service, p.ID, region, p.DNSSuffix, defs, opt)
} }
func getEC2MetadataEndpoint(partitionID, service string, mode EC2IMDSEndpointModeState) ResolvedEndpoint {
switch mode {
case EC2IMDSEndpointModeStateIPv6:
return ResolvedEndpoint{
URL: ec2MetadataEndpointIPv6,
PartitionID: partitionID,
SigningRegion: "aws-global",
SigningName: service,
SigningNameDerived: true,
SigningMethod: "v4",
}
case EC2IMDSEndpointModeStateIPv4:
fallthrough
default:
return ResolvedEndpoint{
URL: ec2MetadataEndpointIPv4,
PartitionID: partitionID,
SigningRegion: "aws-global",
SigningName: service,
SigningNameDerived: true,
SigningMethod: "v4",
}
}
}
func serviceList(ss services) []string { func serviceList(ss services) []string {
list := make([]string, 0, len(ss)) list := make([]string, 0, len(ss))
for k := range ss { for k := range ss {
@ -178,14 +214,14 @@ type service struct {
} }
func (s *service) endpointForRegion(region string) (endpoint, bool) { func (s *service) endpointForRegion(region string) (endpoint, bool) {
if s.IsRegionalized == boxedFalse {
return s.Endpoints[s.PartitionEndpoint], region == s.PartitionEndpoint
}
if e, ok := s.Endpoints[region]; ok { if e, ok := s.Endpoints[region]; ok {
return e, true return e, true
} }
if s.IsRegionalized == boxedFalse {
return s.Endpoints[s.PartitionEndpoint], region == s.PartitionEndpoint
}
// Unable to find any matching endpoint, return // Unable to find any matching endpoint, return
// blank that will be used for generic endpoint creation. // blank that will be used for generic endpoint creation.
return endpoint{}, false return endpoint{}, false

View File

@ -129,12 +129,27 @@ func New(cfg aws.Config, clientInfo metadata.ClientInfo, handlers Handlers,
httpReq, _ := http.NewRequest(method, "", nil) httpReq, _ := http.NewRequest(method, "", nil)
var err error var err error
httpReq.URL, err = url.Parse(clientInfo.Endpoint + operation.HTTPPath) httpReq.URL, err = url.Parse(clientInfo.Endpoint)
if err != nil { if err != nil {
httpReq.URL = &url.URL{} httpReq.URL = &url.URL{}
err = awserr.New("InvalidEndpointURL", "invalid endpoint uri", err) err = awserr.New("InvalidEndpointURL", "invalid endpoint uri", err)
} }
if len(operation.HTTPPath) != 0 {
opHTTPPath := operation.HTTPPath
var opQueryString string
if idx := strings.Index(opHTTPPath, "?"); idx >= 0 {
opQueryString = opHTTPPath[idx+1:]
opHTTPPath = opHTTPPath[:idx]
}
if strings.HasSuffix(httpReq.URL.Path, "/") && strings.HasPrefix(opHTTPPath, "/") {
opHTTPPath = opHTTPPath[1:]
}
httpReq.URL.Path += opHTTPPath
httpReq.URL.RawQuery = opQueryString
}
r := &Request{ r := &Request{
Config: cfg, Config: cfg,
ClientInfo: clientInfo, ClientInfo: clientInfo,

View File

@ -101,13 +101,6 @@ func resolveCredsFromProfile(cfg *aws.Config,
sharedCfg.Creds, sharedCfg.Creds,
) )
case sharedCfg.hasSSOConfiguration():
creds, err = resolveSSOCredentials(cfg, sharedCfg, handlers)
case len(sharedCfg.CredentialProcess) != 0:
// Get credentials from CredentialProcess
creds = processcreds.NewCredentials(sharedCfg.CredentialProcess)
case len(sharedCfg.CredentialSource) != 0: case len(sharedCfg.CredentialSource) != 0:
creds, err = resolveCredsFromSource(cfg, envCfg, creds, err = resolveCredsFromSource(cfg, envCfg,
sharedCfg, handlers, sessOpts, sharedCfg, handlers, sessOpts,
@ -123,6 +116,13 @@ func resolveCredsFromProfile(cfg *aws.Config,
sharedCfg.RoleSessionName, sharedCfg.RoleSessionName,
) )
case sharedCfg.hasSSOConfiguration():
creds, err = resolveSSOCredentials(cfg, sharedCfg, handlers)
case len(sharedCfg.CredentialProcess) != 0:
// Get credentials from CredentialProcess
creds = processcreds.NewCredentials(sharedCfg.CredentialProcess)
default: default:
// Fallback to default credentials provider, include mock errors for // Fallback to default credentials provider, include mock errors for
// the credential chain so user can identify why credentials failed to // the credential chain so user can identify why credentials failed to

View File

@ -283,7 +283,7 @@ component must be enclosed in square brackets.
The custom EC2 IMDS endpoint can also be specified via the Session options. The custom EC2 IMDS endpoint can also be specified via the Session options.
sess, err := session.NewSessionWithOptions(session.Options{ sess, err := session.NewSessionWithOptions(session.Options{
EC2IMDSEndpoint: "http://[::1]", EC2MetadataEndpoint: "http://[::1]",
}) })
*/ */
package session package session

View File

@ -161,10 +161,15 @@ type envConfig struct {
// AWS_S3_USE_ARN_REGION=true // AWS_S3_USE_ARN_REGION=true
S3UseARNRegion bool S3UseARNRegion bool
// Specifies the alternative endpoint to use for EC2 IMDS. // Specifies the EC2 Instance Metadata Service endpoint to use. If specified it overrides EC2IMDSEndpointMode.
// //
// AWS_EC2_METADATA_SERVICE_ENDPOINT=http://[::1] // AWS_EC2_METADATA_SERVICE_ENDPOINT=http://[::1]
EC2IMDSEndpoint string EC2IMDSEndpoint string
// Specifies the EC2 Instance Metadata Service default endpoint selection mode (IPv4 or IPv6)
//
// AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE=IPv6
EC2IMDSEndpointMode endpoints.EC2IMDSEndpointModeState
} }
var ( var (
@ -231,6 +236,9 @@ var (
ec2IMDSEndpointEnvKey = []string{ ec2IMDSEndpointEnvKey = []string{
"AWS_EC2_METADATA_SERVICE_ENDPOINT", "AWS_EC2_METADATA_SERVICE_ENDPOINT",
} }
ec2IMDSEndpointModeEnvKey = []string{
"AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE",
}
useCABundleKey = []string{ useCABundleKey = []string{
"AWS_CA_BUNDLE", "AWS_CA_BUNDLE",
} }
@ -364,6 +372,9 @@ func envConfigLoad(enableSharedConfig bool) (envConfig, error) {
} }
setFromEnvVal(&cfg.EC2IMDSEndpoint, ec2IMDSEndpointEnvKey) setFromEnvVal(&cfg.EC2IMDSEndpoint, ec2IMDSEndpointEnvKey)
if err := setEC2IMDSEndpointMode(&cfg.EC2IMDSEndpointMode, ec2IMDSEndpointModeEnvKey); err != nil {
return envConfig{}, err
}
return cfg, nil return cfg, nil
} }
@ -376,3 +387,17 @@ func setFromEnvVal(dst *string, keys []string) {
} }
} }
} }
func setEC2IMDSEndpointMode(mode *endpoints.EC2IMDSEndpointModeState, keys []string) error {
for _, k := range keys {
value := os.Getenv(k)
if len(value) == 0 {
continue
}
if err := mode.SetFromString(value); err != nil {
return fmt.Errorf("invalid value for environment variable, %s=%s, %v", k, value, err)
}
return nil
}
return nil
}

View File

@ -283,8 +283,8 @@ type Options struct {
Handlers request.Handlers Handlers request.Handlers
// Allows specifying a custom endpoint to be used by the EC2 IMDS client // Allows specifying a custom endpoint to be used by the EC2 IMDS client
// when making requests to the EC2 IMDS API. The must endpoint value must // when making requests to the EC2 IMDS API. The endpoint value should
// include protocol prefix. // include the URI scheme. If the scheme is not present it will be defaulted to http.
// //
// If unset, will the EC2 IMDS client will use its default endpoint. // If unset, will the EC2 IMDS client will use its default endpoint.
// //
@ -298,6 +298,11 @@ type Options struct {
// //
// AWS_EC2_METADATA_SERVICE_ENDPOINT=http://[::1] // AWS_EC2_METADATA_SERVICE_ENDPOINT=http://[::1]
EC2IMDSEndpoint string EC2IMDSEndpoint string
// Specifies the EC2 Instance Metadata Service default endpoint selection mode (IPv4 or IPv6)
//
// AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE=IPv6
EC2IMDSEndpointMode endpoints.EC2IMDSEndpointModeState
} }
// NewSessionWithOptions returns a new Session created from SDK defaults, config files, // NewSessionWithOptions returns a new Session created from SDK defaults, config files,
@ -375,19 +380,23 @@ func Must(sess *Session, err error) *Session {
// Wraps the endpoint resolver with a resolver that will return a custom // Wraps the endpoint resolver with a resolver that will return a custom
// endpoint for EC2 IMDS. // endpoint for EC2 IMDS.
func wrapEC2IMDSEndpoint(resolver endpoints.Resolver, endpoint string) endpoints.Resolver { func wrapEC2IMDSEndpoint(resolver endpoints.Resolver, endpoint string, mode endpoints.EC2IMDSEndpointModeState) endpoints.Resolver {
return endpoints.ResolverFunc( return endpoints.ResolverFunc(
func(service, region string, opts ...func(*endpoints.Options)) ( func(service, region string, opts ...func(*endpoints.Options)) (
endpoints.ResolvedEndpoint, error, endpoints.ResolvedEndpoint, error,
) { ) {
if service == ec2MetadataServiceID { if service == ec2MetadataServiceID && len(endpoint) > 0 {
return endpoints.ResolvedEndpoint{ return endpoints.ResolvedEndpoint{
URL: endpoint, URL: endpoint,
SigningName: ec2MetadataServiceID, SigningName: ec2MetadataServiceID,
SigningRegion: region, SigningRegion: region,
}, nil }, nil
} else if service == ec2MetadataServiceID {
opts = append(opts, func(o *endpoints.Options) {
o.EC2MetadataEndpointMode = mode
})
} }
return resolver.EndpointFor(service, region) return resolver.EndpointFor(service, region, opts...)
}) })
} }
@ -404,8 +413,8 @@ func deprecatedNewSession(envCfg envConfig, cfgs ...*aws.Config) *Session {
cfg.EndpointResolver = endpoints.DefaultResolver() cfg.EndpointResolver = endpoints.DefaultResolver()
} }
if len(envCfg.EC2IMDSEndpoint) != 0 { if !(len(envCfg.EC2IMDSEndpoint) == 0 && envCfg.EC2IMDSEndpointMode == endpoints.EC2IMDSEndpointModeStateUnset) {
cfg.EndpointResolver = wrapEC2IMDSEndpoint(cfg.EndpointResolver, envCfg.EC2IMDSEndpoint) cfg.EndpointResolver = wrapEC2IMDSEndpoint(cfg.EndpointResolver, envCfg.EC2IMDSEndpoint, envCfg.EC2IMDSEndpointMode)
} }
cfg.Credentials = defaults.CredChain(cfg, handlers) cfg.Credentials = defaults.CredChain(cfg, handlers)
@ -737,12 +746,32 @@ func mergeConfigSrcs(cfg, userCfg *aws.Config,
endpoints.LegacyS3UsEast1Endpoint, endpoints.LegacyS3UsEast1Endpoint,
}) })
ec2IMDSEndpoint := sessOpts.EC2IMDSEndpoint var ec2IMDSEndpoint string
if len(ec2IMDSEndpoint) == 0 { for _, v := range []string{
ec2IMDSEndpoint = envCfg.EC2IMDSEndpoint sessOpts.EC2IMDSEndpoint,
envCfg.EC2IMDSEndpoint,
sharedCfg.EC2IMDSEndpoint,
} {
if len(v) != 0 {
ec2IMDSEndpoint = v
break
}
} }
if len(ec2IMDSEndpoint) != 0 {
cfg.EndpointResolver = wrapEC2IMDSEndpoint(cfg.EndpointResolver, ec2IMDSEndpoint) var endpointMode endpoints.EC2IMDSEndpointModeState
for _, v := range []endpoints.EC2IMDSEndpointModeState{
sessOpts.EC2IMDSEndpointMode,
envCfg.EC2IMDSEndpointMode,
sharedCfg.EC2IMDSEndpointMode,
} {
if v != endpoints.EC2IMDSEndpointModeStateUnset {
endpointMode = v
break
}
}
if len(ec2IMDSEndpoint) != 0 || endpointMode != endpoints.EC2IMDSEndpointModeStateUnset {
cfg.EndpointResolver = wrapEC2IMDSEndpoint(cfg.EndpointResolver, ec2IMDSEndpoint, endpointMode)
} }
// Configure credentials if not already set by the user when creating the // Configure credentials if not already set by the user when creating the

View File

@ -66,6 +66,12 @@ const (
// S3 ARN Region Usage // S3 ARN Region Usage
s3UseARNRegionKey = "s3_use_arn_region" s3UseARNRegionKey = "s3_use_arn_region"
// EC2 IMDS Endpoint Mode
ec2MetadataServiceEndpointModeKey = "ec2_metadata_service_endpoint_mode"
// EC2 IMDS Endpoint
ec2MetadataServiceEndpointKey = "ec2_metadata_service_endpoint"
) )
// sharedConfig represents the configuration fields of the SDK config files. // sharedConfig represents the configuration fields of the SDK config files.
@ -145,6 +151,16 @@ type sharedConfig struct {
// //
// s3_use_arn_region=true // s3_use_arn_region=true
S3UseARNRegion bool S3UseARNRegion bool
// Specifies the EC2 Instance Metadata Service default endpoint selection mode (IPv4 or IPv6)
//
// ec2_metadata_service_endpoint_mode=IPv6
EC2IMDSEndpointMode endpoints.EC2IMDSEndpointModeState
// Specifies the EC2 Instance Metadata Service endpoint to use. If specified it overrides EC2IMDSEndpointMode.
//
// ec2_metadata_service_endpoint=http://fd00:ec2::254
EC2IMDSEndpoint string
} }
type sharedConfigFile struct { type sharedConfigFile struct {
@ -334,6 +350,12 @@ func (cfg *sharedConfig) setFromIniFile(profile string, file sharedConfigFile, e
updateString(&cfg.SSORegion, section, ssoRegionKey) updateString(&cfg.SSORegion, section, ssoRegionKey)
updateString(&cfg.SSORoleName, section, ssoRoleNameKey) updateString(&cfg.SSORoleName, section, ssoRoleNameKey)
updateString(&cfg.SSOStartURL, section, ssoStartURL) updateString(&cfg.SSOStartURL, section, ssoStartURL)
if err := updateEC2MetadataServiceEndpointMode(&cfg.EC2IMDSEndpointMode, section, ec2MetadataServiceEndpointModeKey); err != nil {
return fmt.Errorf("failed to load %s from shared config, %s, %v",
ec2MetadataServiceEndpointModeKey, file.Filename, err)
}
updateString(&cfg.EC2IMDSEndpoint, section, ec2MetadataServiceEndpointKey)
} }
updateString(&cfg.CredentialProcess, section, credentialProcessKey) updateString(&cfg.CredentialProcess, section, credentialProcessKey)
@ -364,6 +386,14 @@ func (cfg *sharedConfig) setFromIniFile(profile string, file sharedConfigFile, e
return nil return nil
} }
func updateEC2MetadataServiceEndpointMode(endpointMode *endpoints.EC2IMDSEndpointModeState, section ini.Section, key string) error {
if !section.Has(key) {
return nil
}
value := section.String(key)
return endpointMode.SetFromString(value)
}
func (cfg *sharedConfig) validateCredentialsConfig(profile string) error { func (cfg *sharedConfig) validateCredentialsConfig(profile string) error {
if err := cfg.validateCredentialsRequireARN(profile); err != nil { if err := cfg.validateCredentialsRequireARN(profile); err != nil {
return err return err
@ -401,7 +431,6 @@ func (cfg *sharedConfig) validateCredentialType() error {
len(cfg.CredentialSource) != 0, len(cfg.CredentialSource) != 0,
len(cfg.CredentialProcess) != 0, len(cfg.CredentialProcess) != 0,
len(cfg.WebIdentityTokenFile) != 0, len(cfg.WebIdentityTokenFile) != 0,
cfg.hasSSOConfiguration(),
) { ) {
return ErrSharedConfigSourceCollision return ErrSharedConfigSourceCollision
} }
@ -459,6 +488,10 @@ func (cfg *sharedConfig) clearCredentialOptions() {
cfg.CredentialProcess = "" cfg.CredentialProcess = ""
cfg.WebIdentityTokenFile = "" cfg.WebIdentityTokenFile = ""
cfg.Creds = credentials.Value{} cfg.Creds = credentials.Value{}
cfg.SSOAccountID = ""
cfg.SSORegion = ""
cfg.SSORoleName = ""
cfg.SSOStartURL = ""
} }
func (cfg *sharedConfig) clearAssumeRoleOptions() { func (cfg *sharedConfig) clearAssumeRoleOptions() {

View File

@ -34,23 +34,23 @@ func (m mapRule) IsValid(value string) bool {
return ok return ok
} }
// whitelist is a generic rule for whitelisting // allowList is a generic rule for allow listing
type whitelist struct { type allowList struct {
rule rule
} }
// IsValid for whitelist checks if the value is within the whitelist // IsValid for allow list checks if the value is within the allow list
func (w whitelist) IsValid(value string) bool { func (w allowList) IsValid(value string) bool {
return w.rule.IsValid(value) return w.rule.IsValid(value)
} }
// blacklist is a generic rule for blacklisting // excludeList is a generic rule for exclude listing
type blacklist struct { type excludeList struct {
rule rule
} }
// IsValid for whitelist checks if the value is within the whitelist // IsValid for exclude list checks if the value is within the exclude list
func (b blacklist) IsValid(value string) bool { func (b excludeList) IsValid(value string) bool {
return !b.rule.IsValid(value) return !b.rule.IsValid(value)
} }

View File

@ -90,7 +90,7 @@ const (
) )
var ignoredHeaders = rules{ var ignoredHeaders = rules{
blacklist{ excludeList{
mapRule{ mapRule{
authorizationHeader: struct{}{}, authorizationHeader: struct{}{},
"User-Agent": struct{}{}, "User-Agent": struct{}{},
@ -99,9 +99,9 @@ var ignoredHeaders = rules{
}, },
} }
// requiredSignedHeaders is a whitelist for build canonical headers. // requiredSignedHeaders is a allow list for build canonical headers.
var requiredSignedHeaders = rules{ var requiredSignedHeaders = rules{
whitelist{ allowList{
mapRule{ mapRule{
"Cache-Control": struct{}{}, "Cache-Control": struct{}{},
"Content-Disposition": struct{}{}, "Content-Disposition": struct{}{},
@ -145,12 +145,13 @@ var requiredSignedHeaders = rules{
}, },
}, },
patterns{"X-Amz-Meta-"}, patterns{"X-Amz-Meta-"},
patterns{"X-Amz-Object-Lock-"},
} }
// allowedHoisting is a whitelist for build query headers. The boolean value // allowedHoisting is a allow list for build query headers. The boolean value
// represents whether or not it is a pattern. // represents whether or not it is a pattern.
var allowedQueryHoisting = inclusiveRules{ var allowedQueryHoisting = inclusiveRules{
blacklist{requiredSignedHeaders}, excludeList{requiredSignedHeaders},
patterns{"X-Amz-"}, patterns{"X-Amz-"},
} }

View File

@ -5,4 +5,4 @@ package aws
const SDKName = "aws-sdk-go" const SDKName = "aws-sdk-go"
// SDKVersion is the version of this SDK // SDKVersion is the version of this SDK
const SDKVersion = "1.38.29" const SDKVersion = "1.40.0"

View File

@ -13,17 +13,30 @@
// } // }
// //
// Below is the BNF that describes this parser // Below is the BNF that describes this parser
// Grammar: // Grammar:
// stmt -> value stmt' // stmt -> section | stmt'
// stmt' -> epsilon | op stmt // stmt' -> epsilon | expr
// value -> number | string | boolean | quoted_string // expr -> value (stmt)* | equal_expr (stmt)*
// equal_expr -> value ( ':' | '=' ) equal_expr'
// equal_expr' -> number | string | quoted_string
// quoted_string -> " quoted_string'
// quoted_string' -> string quoted_string_end
// quoted_string_end -> "
// //
// section -> [ section' // section -> [ section'
// section' -> value section_close // section' -> section_value section_close
// section_close -> ] // section_value -> number | string_subset | boolean | quoted_string_subset
// quoted_string_subset -> " quoted_string_subset'
// quoted_string_subset' -> string_subset quoted_string_end
// quoted_string_subset -> "
// section_close -> ]
// //
// SkipState will skip (NL WS)+ // value -> number | string_subset | boolean
// string -> ? UTF-8 Code-Points except '\n' (U+000A) and '\r\n' (U+000D U+000A) ?
// string_subset -> ? Code-points excepted by <string> grammar except ':' (U+003A), '=' (U+003D), '[' (U+005B), and ']' (U+005D) ?
// //
// comment -> # comment' | ; comment' // SkipState will skip (NL WS)+
// comment' -> epsilon | value //
// comment -> # comment' | ; comment'
// comment' -> epsilon | value
package ini package ini

View File

@ -5,9 +5,12 @@ import (
"io" "io"
) )
// ParseState represents the current state of the parser.
type ParseState uint
// State enums for the parse table // State enums for the parse table
const ( const (
InvalidState = iota InvalidState ParseState = iota
// stmt -> value stmt' // stmt -> value stmt'
StatementState StatementState
// stmt' -> MarkComplete | op stmt // stmt' -> MarkComplete | op stmt
@ -36,8 +39,8 @@ const (
) )
// parseTable is a state machine to dictate the grammar above. // parseTable is a state machine to dictate the grammar above.
var parseTable = map[ASTKind]map[TokenType]int{ var parseTable = map[ASTKind]map[TokenType]ParseState{
ASTKindStart: map[TokenType]int{ ASTKindStart: {
TokenLit: StatementState, TokenLit: StatementState,
TokenSep: OpenScopeState, TokenSep: OpenScopeState,
TokenWS: SkipTokenState, TokenWS: SkipTokenState,
@ -45,7 +48,7 @@ var parseTable = map[ASTKind]map[TokenType]int{
TokenComment: CommentState, TokenComment: CommentState,
TokenNone: TerminalState, TokenNone: TerminalState,
}, },
ASTKindCommentStatement: map[TokenType]int{ ASTKindCommentStatement: {
TokenLit: StatementState, TokenLit: StatementState,
TokenSep: OpenScopeState, TokenSep: OpenScopeState,
TokenWS: SkipTokenState, TokenWS: SkipTokenState,
@ -53,7 +56,7 @@ var parseTable = map[ASTKind]map[TokenType]int{
TokenComment: CommentState, TokenComment: CommentState,
TokenNone: MarkCompleteState, TokenNone: MarkCompleteState,
}, },
ASTKindExpr: map[TokenType]int{ ASTKindExpr: {
TokenOp: StatementPrimeState, TokenOp: StatementPrimeState,
TokenLit: ValueState, TokenLit: ValueState,
TokenSep: OpenScopeState, TokenSep: OpenScopeState,
@ -62,13 +65,15 @@ var parseTable = map[ASTKind]map[TokenType]int{
TokenComment: CommentState, TokenComment: CommentState,
TokenNone: MarkCompleteState, TokenNone: MarkCompleteState,
}, },
ASTKindEqualExpr: map[TokenType]int{ ASTKindEqualExpr: {
TokenLit: ValueState, TokenLit: ValueState,
TokenWS: SkipTokenState, TokenSep: ValueState,
TokenNL: SkipState, TokenOp: ValueState,
TokenNone: SkipState, TokenWS: SkipTokenState,
TokenNL: SkipState,
TokenNone: SkipState,
}, },
ASTKindStatement: map[TokenType]int{ ASTKindStatement: {
TokenLit: SectionState, TokenLit: SectionState,
TokenSep: CloseScopeState, TokenSep: CloseScopeState,
TokenWS: SkipTokenState, TokenWS: SkipTokenState,
@ -76,9 +81,9 @@ var parseTable = map[ASTKind]map[TokenType]int{
TokenComment: CommentState, TokenComment: CommentState,
TokenNone: MarkCompleteState, TokenNone: MarkCompleteState,
}, },
ASTKindExprStatement: map[TokenType]int{ ASTKindExprStatement: {
TokenLit: ValueState, TokenLit: ValueState,
TokenSep: OpenScopeState, TokenSep: ValueState,
TokenOp: ValueState, TokenOp: ValueState,
TokenWS: ValueState, TokenWS: ValueState,
TokenNL: MarkCompleteState, TokenNL: MarkCompleteState,
@ -86,14 +91,14 @@ var parseTable = map[ASTKind]map[TokenType]int{
TokenNone: TerminalState, TokenNone: TerminalState,
TokenComma: SkipState, TokenComma: SkipState,
}, },
ASTKindSectionStatement: map[TokenType]int{ ASTKindSectionStatement: {
TokenLit: SectionState, TokenLit: SectionState,
TokenOp: SectionState, TokenOp: SectionState,
TokenSep: CloseScopeState, TokenSep: CloseScopeState,
TokenWS: SectionState, TokenWS: SectionState,
TokenNL: SkipTokenState, TokenNL: SkipTokenState,
}, },
ASTKindCompletedSectionStatement: map[TokenType]int{ ASTKindCompletedSectionStatement: {
TokenWS: SkipTokenState, TokenWS: SkipTokenState,
TokenNL: SkipTokenState, TokenNL: SkipTokenState,
TokenLit: StatementState, TokenLit: StatementState,
@ -101,7 +106,7 @@ var parseTable = map[ASTKind]map[TokenType]int{
TokenComment: CommentState, TokenComment: CommentState,
TokenNone: MarkCompleteState, TokenNone: MarkCompleteState,
}, },
ASTKindSkipStatement: map[TokenType]int{ ASTKindSkipStatement: {
TokenLit: StatementState, TokenLit: StatementState,
TokenSep: OpenScopeState, TokenSep: OpenScopeState,
TokenWS: SkipTokenState, TokenWS: SkipTokenState,
@ -205,18 +210,6 @@ loop:
case ValueState: case ValueState:
// ValueState requires the previous state to either be an equal expression // ValueState requires the previous state to either be an equal expression
// or an expression statement. // or an expression statement.
//
// This grammar occurs when the RHS is a number, word, or quoted string.
// equal_expr -> lit op equal_expr'
// equal_expr' -> number | string | quoted_string
// quoted_string -> " quoted_string'
// quoted_string' -> string quoted_string_end
// quoted_string_end -> "
//
// otherwise
// expr_stmt -> equal_expr (expr_stmt')*
// expr_stmt' -> ws S | op S | MarkComplete
// S -> equal_expr' expr_stmt'
switch k.Kind { switch k.Kind {
case ASTKindEqualExpr: case ASTKindEqualExpr:
// assigning a value to some key // assigning a value to some key
@ -243,7 +236,7 @@ loop:
} }
children[len(children)-1] = rhs children[len(children)-1] = rhs
k.SetChildren(children) root.SetChildren(children)
stack.Push(k) stack.Push(k)
} }

View File

@ -50,7 +50,10 @@ func (v *DefaultVisitor) VisitExpr(expr AST) error {
rhs := children[1] rhs := children[1]
if rhs.Root.Type() != TokenLit { // The right-hand value side the equality expression is allowed to contain '[', ']', ':', '=' in the values.
// If the token is not either a literal or one of the token types that identifies those four additional
// tokens then error.
if !(rhs.Root.Type() == TokenLit || rhs.Root.Type() == TokenOp || rhs.Root.Type() == TokenSep) {
return NewParseError("unexpected token type") return NewParseError("unexpected token type")
} }

View File

@ -48,6 +48,10 @@ func ParseResource(s string, resParser ResourceParser) (resARN Resource, err err
return nil, InvalidARNError{ARN: a, Reason: "service is not supported"} return nil, InvalidARNError{ARN: a, Reason: "service is not supported"}
} }
if strings.HasPrefix(a.Region, "fips-") || strings.HasSuffix(a.Region, "-fips") {
return nil, InvalidARNError{ARN: a, Reason: "FIPS region not allowed in ARN"}
}
if len(a.Resource) == 0 { if len(a.Resource) == 0 {
return nil, InvalidARNError{ARN: a, Reason: "resource not set"} return nil, InvalidARNError{ARN: a, Reason: "resource not set"}
} }

View File

@ -71,6 +71,8 @@ func NewInvalidARNWithUnsupportedPartitionError(resource arn.Resource, err error
} }
// NewInvalidARNWithFIPSError ARN not supported for FIPS region // NewInvalidARNWithFIPSError ARN not supported for FIPS region
//
// Deprecated: FIPS will not appear in the ARN region component.
func NewInvalidARNWithFIPSError(resource arn.Resource, err error) InvalidARNError { func NewInvalidARNWithFIPSError(resource arn.Resource, err error) InvalidARNError {
return InvalidARNError{ return InvalidARNError{
message: "resource ARN not supported for FIPS region", message: "resource ARN not supported for FIPS region",
@ -155,6 +157,17 @@ func NewClientConfiguredForFIPSError(resource arn.Resource, clientPartitionID, c
} }
} }
// NewFIPSConfigurationError denotes a configuration error when a client or request is configured for FIPS
func NewFIPSConfigurationError(resource arn.Resource, clientPartitionID, clientRegion string, err error) ConfigurationError {
return ConfigurationError{
message: "use of ARN is not supported when client or request is configured for FIPS",
origErr: err,
resource: resource,
clientPartitionID: clientPartitionID,
clientRegion: clientRegion,
}
}
// NewClientConfiguredForAccelerateError denotes client config error for unsupported S3 accelerate // NewClientConfiguredForAccelerateError denotes client config error for unsupported S3 accelerate
func NewClientConfiguredForAccelerateError(resource arn.Resource, clientPartitionID, clientRegion string, err error) ConfigurationError { func NewClientConfiguredForAccelerateError(resource arn.Resource, clientPartitionID, clientRegion string, err error) ConfigurationError {
return ConfigurationError{ return ConfigurationError{

View File

@ -31,6 +31,8 @@ func (r ResourceRequest) UseFIPS() bool {
} }
// ResourceConfiguredForFIPS returns true if resource ARNs region is FIPS // ResourceConfiguredForFIPS returns true if resource ARNs region is FIPS
//
// Deprecated: FIPS pseudo-regions will not be in the ARN
func (r ResourceRequest) ResourceConfiguredForFIPS() bool { func (r ResourceRequest) ResourceConfiguredForFIPS() bool {
return IsFIPS(r.ARN().Region) return IsFIPS(r.ARN().Region)
} }

View File

@ -98,7 +98,7 @@ func buildLocationElements(r *request.Request, v reflect.Value, buildGETQuery bo
// Support the ability to customize values to be marshaled as a // Support the ability to customize values to be marshaled as a
// blob even though they were modeled as a string. Required for S3 // blob even though they were modeled as a string. Required for S3
// API operations like SSECustomerKey is modeled as stirng but // API operations like SSECustomerKey is modeled as string but
// required to be base64 encoded in request. // required to be base64 encoded in request.
if field.Tag.Get("marshal-as") == "blob" { if field.Tag.Get("marshal-as") == "blob" {
m = m.Convert(byteSliceType) m = m.Convert(byteSliceType)

View File

@ -1,6 +1,8 @@
package protocol package protocol
import ( import (
"bytes"
"fmt"
"math" "math"
"strconv" "strconv"
"time" "time"
@ -19,7 +21,9 @@ const (
// Output time is intended to not contain decimals // Output time is intended to not contain decimals
const ( const (
// RFC 7231#section-7.1.1.1 timetamp format. e.g Tue, 29 Apr 2014 18:30:38 GMT // RFC 7231#section-7.1.1.1 timetamp format. e.g Tue, 29 Apr 2014 18:30:38 GMT
RFC822TimeFormat = "Mon, 2 Jan 2006 15:04:05 GMT" RFC822TimeFormat = "Mon, 2 Jan 2006 15:04:05 GMT"
rfc822TimeFormatSingleDigitDay = "Mon, _2 Jan 2006 15:04:05 GMT"
rfc822TimeFormatSingleDigitDayTwoDigitYear = "Mon, _2 Jan 06 15:04:05 GMT"
// This format is used for output time without seconds precision // This format is used for output time without seconds precision
RFC822OutputTimeFormat = "Mon, 02 Jan 2006 15:04:05 GMT" RFC822OutputTimeFormat = "Mon, 02 Jan 2006 15:04:05 GMT"
@ -67,10 +71,20 @@ func FormatTime(name string, t time.Time) string {
// the time if it was able to be parsed, and fails otherwise. // the time if it was able to be parsed, and fails otherwise.
func ParseTime(formatName, value string) (time.Time, error) { func ParseTime(formatName, value string) (time.Time, error) {
switch formatName { switch formatName {
case RFC822TimeFormatName: case RFC822TimeFormatName: // Smithy HTTPDate format
return time.Parse(RFC822TimeFormat, value) return tryParse(value,
case ISO8601TimeFormatName: RFC822TimeFormat,
return time.Parse(ISO8601TimeFormat, value) rfc822TimeFormatSingleDigitDay,
rfc822TimeFormatSingleDigitDayTwoDigitYear,
time.RFC850,
time.ANSIC,
)
case ISO8601TimeFormatName: // Smithy DateTime format
return tryParse(value,
ISO8601TimeFormat,
time.RFC3339Nano,
time.RFC3339,
)
case UnixTimeFormatName: case UnixTimeFormatName:
v, err := strconv.ParseFloat(value, 64) v, err := strconv.ParseFloat(value, 64)
_, dec := math.Modf(v) _, dec := math.Modf(v)
@ -83,3 +97,36 @@ func ParseTime(formatName, value string) (time.Time, error) {
panic("unknown timestamp format name, " + formatName) panic("unknown timestamp format name, " + formatName)
} }
} }
func tryParse(v string, formats ...string) (time.Time, error) {
var errs parseErrors
for _, f := range formats {
t, err := time.Parse(f, v)
if err != nil {
errs = append(errs, parseError{
Format: f,
Err: err,
})
continue
}
return t, nil
}
return time.Time{}, fmt.Errorf("unable to parse time string, %v", errs)
}
type parseErrors []parseError
func (es parseErrors) Error() string {
var s bytes.Buffer
for _, e := range es {
fmt.Fprintf(&s, "\n * %q: %v", e.Format, e.Err)
}
return "parse errors:" + s.String()
}
type parseError struct {
Format string
Err error
}

View File

@ -308,6 +308,8 @@ func (b *xmlBuilder) buildScalar(value reflect.Value, current *XMLNode, tag refl
if tag.Get("xmlAttribute") != "" { // put into current node's attribute list if tag.Get("xmlAttribute") != "" { // put into current node's attribute list
attr := xml.Attr{Name: xname, Value: str} attr := xml.Attr{Name: xname, Value: str}
current.Attr = append(current.Attr, attr) current.Attr = append(current.Attr, attr)
} else if len(xname.Local) == 0 {
current.Text = str
} else { // regular text node } else { // regular text node
current.AddChild(&XMLNode{Name: xname, Text: str}) current.AddChild(&XMLNode{Name: xname, Text: str})
} }

View File

@ -18,6 +18,14 @@ type XMLNode struct {
parent *XMLNode parent *XMLNode
} }
// textEncoder is a string type alias that implemnts the TextMarshaler interface.
// This alias type is used to ensure that the line feed (\n) (U+000A) is escaped.
type textEncoder string
func (t textEncoder) MarshalText() ([]byte, error) {
return []byte(t), nil
}
// NewXMLElement returns a pointer to a new XMLNode initialized to default values. // NewXMLElement returns a pointer to a new XMLNode initialized to default values.
func NewXMLElement(name xml.Name) *XMLNode { func NewXMLElement(name xml.Name) *XMLNode {
return &XMLNode{ return &XMLNode{
@ -130,11 +138,16 @@ func StructToXML(e *xml.Encoder, node *XMLNode, sorted bool) error {
attrs = sortedAttrs attrs = sortedAttrs
} }
e.EncodeToken(xml.StartElement{Name: node.Name, Attr: attrs}) startElement := xml.StartElement{Name: node.Name, Attr: attrs}
if node.Text != "" { if node.Text != "" {
e.EncodeToken(xml.CharData([]byte(node.Text))) e.EncodeElement(textEncoder(node.Text), startElement)
} else if sorted { return e.Flush()
}
e.EncodeToken(startElement)
if sorted {
sortedNames := []string{} sortedNames := []string{}
for k := range node.Children { for k := range node.Children {
sortedNames = append(sortedNames, k) sortedNames = append(sortedNames, k)
@ -154,6 +167,7 @@ func StructToXML(e *xml.Encoder, node *XMLNode, sorted bool) error {
} }
} }
e.EncodeToken(xml.EndElement{Name: node.Name}) e.EncodeToken(startElement.End())
return e.Flush() return e.Flush()
} }

File diff suppressed because it is too large Load Diff

View File

@ -268,6 +268,10 @@ type AutoScalingAPI interface {
ExitStandbyWithContext(aws.Context, *autoscaling.ExitStandbyInput, ...request.Option) (*autoscaling.ExitStandbyOutput, error) ExitStandbyWithContext(aws.Context, *autoscaling.ExitStandbyInput, ...request.Option) (*autoscaling.ExitStandbyOutput, error)
ExitStandbyRequest(*autoscaling.ExitStandbyInput) (*request.Request, *autoscaling.ExitStandbyOutput) ExitStandbyRequest(*autoscaling.ExitStandbyInput) (*request.Request, *autoscaling.ExitStandbyOutput)
GetPredictiveScalingForecast(*autoscaling.GetPredictiveScalingForecastInput) (*autoscaling.GetPredictiveScalingForecastOutput, error)
GetPredictiveScalingForecastWithContext(aws.Context, *autoscaling.GetPredictiveScalingForecastInput, ...request.Option) (*autoscaling.GetPredictiveScalingForecastOutput, error)
GetPredictiveScalingForecastRequest(*autoscaling.GetPredictiveScalingForecastInput) (*request.Request, *autoscaling.GetPredictiveScalingForecastOutput)
PutLifecycleHook(*autoscaling.PutLifecycleHookInput) (*autoscaling.PutLifecycleHookOutput, error) PutLifecycleHook(*autoscaling.PutLifecycleHookInput) (*autoscaling.PutLifecycleHookOutput, error)
PutLifecycleHookWithContext(aws.Context, *autoscaling.PutLifecycleHookInput, ...request.Option) (*autoscaling.PutLifecycleHookOutput, error) PutLifecycleHookWithContext(aws.Context, *autoscaling.PutLifecycleHookInput, ...request.Option) (*autoscaling.PutLifecycleHookOutput, error)
PutLifecycleHookRequest(*autoscaling.PutLifecycleHookInput) (*request.Request, *autoscaling.PutLifecycleHookOutput) PutLifecycleHookRequest(*autoscaling.PutLifecycleHookInput) (*request.Request, *autoscaling.PutLifecycleHookOutput)

View File

@ -5,12 +5,14 @@
// //
// Amazon EC2 Auto Scaling is designed to automatically launch or terminate // Amazon EC2 Auto Scaling is designed to automatically launch or terminate
// EC2 instances based on user-defined scaling policies, scheduled actions, // EC2 instances based on user-defined scaling policies, scheduled actions,
// and health checks. Use this service with AWS Auto Scaling, Amazon CloudWatch, // and health checks.
// and Elastic Load Balancing.
// //
// For more information, including information about granting IAM users required // For more information about Amazon EC2 Auto Scaling, see the Amazon EC2 Auto
// permissions for Amazon EC2 Auto Scaling actions, see the Amazon EC2 Auto
// Scaling User Guide (https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html). // Scaling User Guide (https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html).
// For information about granting IAM users required permissions for calls to
// Amazon EC2 Auto Scaling, see Granting IAM users required permissions for
// Amazon EC2 Auto Scaling resources (https://docs.aws.amazon.com/autoscaling/ec2/APIReference/ec2-auto-scaling-api-permissions.html)
// in the Amazon EC2 Auto Scaling API Reference.
// //
// See https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01 for more information on this service. // See https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01 for more information on this service.
// //

File diff suppressed because it is too large Load Diff

View File

@ -131,9 +131,15 @@ const (
// A client request token already exists. // A client request token already exists.
ErrCodeTokenAlreadyExistsException = "TokenAlreadyExistsException" ErrCodeTokenAlreadyExistsException = "TokenAlreadyExistsException"
// ErrCodeTypeConfigurationNotFoundException for service response error code
// "TypeConfigurationNotFoundException".
//
// The specified extension configuration cannot be found.
ErrCodeTypeConfigurationNotFoundException = "TypeConfigurationNotFoundException"
// ErrCodeTypeNotFoundException for service response error code // ErrCodeTypeNotFoundException for service response error code
// "TypeNotFoundException". // "TypeNotFoundException".
// //
// The specified type does not exist in the CloudFormation registry. // The specified extension does not exist in the CloudFormation registry.
ErrCodeTypeNotFoundException = "TypeNotFoundException" ErrCodeTypeNotFoundException = "TypeNotFoundException"
) )

File diff suppressed because it is too large Load Diff

View File

@ -144,6 +144,10 @@ type EC2API interface {
AssociateTransitGatewayRouteTableWithContext(aws.Context, *ec2.AssociateTransitGatewayRouteTableInput, ...request.Option) (*ec2.AssociateTransitGatewayRouteTableOutput, error) AssociateTransitGatewayRouteTableWithContext(aws.Context, *ec2.AssociateTransitGatewayRouteTableInput, ...request.Option) (*ec2.AssociateTransitGatewayRouteTableOutput, error)
AssociateTransitGatewayRouteTableRequest(*ec2.AssociateTransitGatewayRouteTableInput) (*request.Request, *ec2.AssociateTransitGatewayRouteTableOutput) AssociateTransitGatewayRouteTableRequest(*ec2.AssociateTransitGatewayRouteTableInput) (*request.Request, *ec2.AssociateTransitGatewayRouteTableOutput)
AssociateTrunkInterface(*ec2.AssociateTrunkInterfaceInput) (*ec2.AssociateTrunkInterfaceOutput, error)
AssociateTrunkInterfaceWithContext(aws.Context, *ec2.AssociateTrunkInterfaceInput, ...request.Option) (*ec2.AssociateTrunkInterfaceOutput, error)
AssociateTrunkInterfaceRequest(*ec2.AssociateTrunkInterfaceInput) (*request.Request, *ec2.AssociateTrunkInterfaceOutput)
AssociateVpcCidrBlock(*ec2.AssociateVpcCidrBlockInput) (*ec2.AssociateVpcCidrBlockOutput, error) AssociateVpcCidrBlock(*ec2.AssociateVpcCidrBlockInput) (*ec2.AssociateVpcCidrBlockOutput, error)
AssociateVpcCidrBlockWithContext(aws.Context, *ec2.AssociateVpcCidrBlockInput, ...request.Option) (*ec2.AssociateVpcCidrBlockOutput, error) AssociateVpcCidrBlockWithContext(aws.Context, *ec2.AssociateVpcCidrBlockInput, ...request.Option) (*ec2.AssociateVpcCidrBlockOutput, error)
AssociateVpcCidrBlockRequest(*ec2.AssociateVpcCidrBlockInput) (*request.Request, *ec2.AssociateVpcCidrBlockOutput) AssociateVpcCidrBlockRequest(*ec2.AssociateVpcCidrBlockInput) (*request.Request, *ec2.AssociateVpcCidrBlockOutput)
@ -1208,6 +1212,13 @@ type EC2API interface {
DescribeSecurityGroupReferencesWithContext(aws.Context, *ec2.DescribeSecurityGroupReferencesInput, ...request.Option) (*ec2.DescribeSecurityGroupReferencesOutput, error) DescribeSecurityGroupReferencesWithContext(aws.Context, *ec2.DescribeSecurityGroupReferencesInput, ...request.Option) (*ec2.DescribeSecurityGroupReferencesOutput, error)
DescribeSecurityGroupReferencesRequest(*ec2.DescribeSecurityGroupReferencesInput) (*request.Request, *ec2.DescribeSecurityGroupReferencesOutput) DescribeSecurityGroupReferencesRequest(*ec2.DescribeSecurityGroupReferencesInput) (*request.Request, *ec2.DescribeSecurityGroupReferencesOutput)
DescribeSecurityGroupRules(*ec2.DescribeSecurityGroupRulesInput) (*ec2.DescribeSecurityGroupRulesOutput, error)
DescribeSecurityGroupRulesWithContext(aws.Context, *ec2.DescribeSecurityGroupRulesInput, ...request.Option) (*ec2.DescribeSecurityGroupRulesOutput, error)
DescribeSecurityGroupRulesRequest(*ec2.DescribeSecurityGroupRulesInput) (*request.Request, *ec2.DescribeSecurityGroupRulesOutput)
DescribeSecurityGroupRulesPages(*ec2.DescribeSecurityGroupRulesInput, func(*ec2.DescribeSecurityGroupRulesOutput, bool) bool) error
DescribeSecurityGroupRulesPagesWithContext(aws.Context, *ec2.DescribeSecurityGroupRulesInput, func(*ec2.DescribeSecurityGroupRulesOutput, bool) bool, ...request.Option) error
DescribeSecurityGroups(*ec2.DescribeSecurityGroupsInput) (*ec2.DescribeSecurityGroupsOutput, error) DescribeSecurityGroups(*ec2.DescribeSecurityGroupsInput) (*ec2.DescribeSecurityGroupsOutput, error)
DescribeSecurityGroupsWithContext(aws.Context, *ec2.DescribeSecurityGroupsInput, ...request.Option) (*ec2.DescribeSecurityGroupsOutput, error) DescribeSecurityGroupsWithContext(aws.Context, *ec2.DescribeSecurityGroupsInput, ...request.Option) (*ec2.DescribeSecurityGroupsOutput, error)
DescribeSecurityGroupsRequest(*ec2.DescribeSecurityGroupsInput) (*request.Request, *ec2.DescribeSecurityGroupsOutput) DescribeSecurityGroupsRequest(*ec2.DescribeSecurityGroupsInput) (*request.Request, *ec2.DescribeSecurityGroupsOutput)
@ -1364,6 +1375,10 @@ type EC2API interface {
DescribeTransitGatewaysPages(*ec2.DescribeTransitGatewaysInput, func(*ec2.DescribeTransitGatewaysOutput, bool) bool) error DescribeTransitGatewaysPages(*ec2.DescribeTransitGatewaysInput, func(*ec2.DescribeTransitGatewaysOutput, bool) bool) error
DescribeTransitGatewaysPagesWithContext(aws.Context, *ec2.DescribeTransitGatewaysInput, func(*ec2.DescribeTransitGatewaysOutput, bool) bool, ...request.Option) error DescribeTransitGatewaysPagesWithContext(aws.Context, *ec2.DescribeTransitGatewaysInput, func(*ec2.DescribeTransitGatewaysOutput, bool) bool, ...request.Option) error
DescribeTrunkInterfaceAssociations(*ec2.DescribeTrunkInterfaceAssociationsInput) (*ec2.DescribeTrunkInterfaceAssociationsOutput, error)
DescribeTrunkInterfaceAssociationsWithContext(aws.Context, *ec2.DescribeTrunkInterfaceAssociationsInput, ...request.Option) (*ec2.DescribeTrunkInterfaceAssociationsOutput, error)
DescribeTrunkInterfaceAssociationsRequest(*ec2.DescribeTrunkInterfaceAssociationsInput) (*request.Request, *ec2.DescribeTrunkInterfaceAssociationsOutput)
DescribeVolumeAttribute(*ec2.DescribeVolumeAttributeInput) (*ec2.DescribeVolumeAttributeOutput, error) DescribeVolumeAttribute(*ec2.DescribeVolumeAttributeInput) (*ec2.DescribeVolumeAttributeOutput, error)
DescribeVolumeAttributeWithContext(aws.Context, *ec2.DescribeVolumeAttributeInput, ...request.Option) (*ec2.DescribeVolumeAttributeOutput, error) DescribeVolumeAttributeWithContext(aws.Context, *ec2.DescribeVolumeAttributeInput, ...request.Option) (*ec2.DescribeVolumeAttributeOutput, error)
DescribeVolumeAttributeRequest(*ec2.DescribeVolumeAttributeInput) (*request.Request, *ec2.DescribeVolumeAttributeOutput) DescribeVolumeAttributeRequest(*ec2.DescribeVolumeAttributeInput) (*request.Request, *ec2.DescribeVolumeAttributeOutput)
@ -1493,6 +1508,10 @@ type EC2API interface {
DisableFastSnapshotRestoresWithContext(aws.Context, *ec2.DisableFastSnapshotRestoresInput, ...request.Option) (*ec2.DisableFastSnapshotRestoresOutput, error) DisableFastSnapshotRestoresWithContext(aws.Context, *ec2.DisableFastSnapshotRestoresInput, ...request.Option) (*ec2.DisableFastSnapshotRestoresOutput, error)
DisableFastSnapshotRestoresRequest(*ec2.DisableFastSnapshotRestoresInput) (*request.Request, *ec2.DisableFastSnapshotRestoresOutput) DisableFastSnapshotRestoresRequest(*ec2.DisableFastSnapshotRestoresInput) (*request.Request, *ec2.DisableFastSnapshotRestoresOutput)
DisableImageDeprecation(*ec2.DisableImageDeprecationInput) (*ec2.DisableImageDeprecationOutput, error)
DisableImageDeprecationWithContext(aws.Context, *ec2.DisableImageDeprecationInput, ...request.Option) (*ec2.DisableImageDeprecationOutput, error)
DisableImageDeprecationRequest(*ec2.DisableImageDeprecationInput) (*request.Request, *ec2.DisableImageDeprecationOutput)
DisableSerialConsoleAccess(*ec2.DisableSerialConsoleAccessInput) (*ec2.DisableSerialConsoleAccessOutput, error) DisableSerialConsoleAccess(*ec2.DisableSerialConsoleAccessInput) (*ec2.DisableSerialConsoleAccessOutput, error)
DisableSerialConsoleAccessWithContext(aws.Context, *ec2.DisableSerialConsoleAccessInput, ...request.Option) (*ec2.DisableSerialConsoleAccessOutput, error) DisableSerialConsoleAccessWithContext(aws.Context, *ec2.DisableSerialConsoleAccessInput, ...request.Option) (*ec2.DisableSerialConsoleAccessOutput, error)
DisableSerialConsoleAccessRequest(*ec2.DisableSerialConsoleAccessInput) (*request.Request, *ec2.DisableSerialConsoleAccessOutput) DisableSerialConsoleAccessRequest(*ec2.DisableSerialConsoleAccessInput) (*request.Request, *ec2.DisableSerialConsoleAccessOutput)
@ -1545,6 +1564,10 @@ type EC2API interface {
DisassociateTransitGatewayRouteTableWithContext(aws.Context, *ec2.DisassociateTransitGatewayRouteTableInput, ...request.Option) (*ec2.DisassociateTransitGatewayRouteTableOutput, error) DisassociateTransitGatewayRouteTableWithContext(aws.Context, *ec2.DisassociateTransitGatewayRouteTableInput, ...request.Option) (*ec2.DisassociateTransitGatewayRouteTableOutput, error)
DisassociateTransitGatewayRouteTableRequest(*ec2.DisassociateTransitGatewayRouteTableInput) (*request.Request, *ec2.DisassociateTransitGatewayRouteTableOutput) DisassociateTransitGatewayRouteTableRequest(*ec2.DisassociateTransitGatewayRouteTableInput) (*request.Request, *ec2.DisassociateTransitGatewayRouteTableOutput)
DisassociateTrunkInterface(*ec2.DisassociateTrunkInterfaceInput) (*ec2.DisassociateTrunkInterfaceOutput, error)
DisassociateTrunkInterfaceWithContext(aws.Context, *ec2.DisassociateTrunkInterfaceInput, ...request.Option) (*ec2.DisassociateTrunkInterfaceOutput, error)
DisassociateTrunkInterfaceRequest(*ec2.DisassociateTrunkInterfaceInput) (*request.Request, *ec2.DisassociateTrunkInterfaceOutput)
DisassociateVpcCidrBlock(*ec2.DisassociateVpcCidrBlockInput) (*ec2.DisassociateVpcCidrBlockOutput, error) DisassociateVpcCidrBlock(*ec2.DisassociateVpcCidrBlockInput) (*ec2.DisassociateVpcCidrBlockOutput, error)
DisassociateVpcCidrBlockWithContext(aws.Context, *ec2.DisassociateVpcCidrBlockInput, ...request.Option) (*ec2.DisassociateVpcCidrBlockOutput, error) DisassociateVpcCidrBlockWithContext(aws.Context, *ec2.DisassociateVpcCidrBlockInput, ...request.Option) (*ec2.DisassociateVpcCidrBlockOutput, error)
DisassociateVpcCidrBlockRequest(*ec2.DisassociateVpcCidrBlockInput) (*request.Request, *ec2.DisassociateVpcCidrBlockOutput) DisassociateVpcCidrBlockRequest(*ec2.DisassociateVpcCidrBlockInput) (*request.Request, *ec2.DisassociateVpcCidrBlockOutput)
@ -1557,6 +1580,10 @@ type EC2API interface {
EnableFastSnapshotRestoresWithContext(aws.Context, *ec2.EnableFastSnapshotRestoresInput, ...request.Option) (*ec2.EnableFastSnapshotRestoresOutput, error) EnableFastSnapshotRestoresWithContext(aws.Context, *ec2.EnableFastSnapshotRestoresInput, ...request.Option) (*ec2.EnableFastSnapshotRestoresOutput, error)
EnableFastSnapshotRestoresRequest(*ec2.EnableFastSnapshotRestoresInput) (*request.Request, *ec2.EnableFastSnapshotRestoresOutput) EnableFastSnapshotRestoresRequest(*ec2.EnableFastSnapshotRestoresInput) (*request.Request, *ec2.EnableFastSnapshotRestoresOutput)
EnableImageDeprecation(*ec2.EnableImageDeprecationInput) (*ec2.EnableImageDeprecationOutput, error)
EnableImageDeprecationWithContext(aws.Context, *ec2.EnableImageDeprecationInput, ...request.Option) (*ec2.EnableImageDeprecationOutput, error)
EnableImageDeprecationRequest(*ec2.EnableImageDeprecationInput) (*request.Request, *ec2.EnableImageDeprecationOutput)
EnableSerialConsoleAccess(*ec2.EnableSerialConsoleAccessInput) (*ec2.EnableSerialConsoleAccessOutput, error) EnableSerialConsoleAccess(*ec2.EnableSerialConsoleAccessInput) (*ec2.EnableSerialConsoleAccessOutput, error)
EnableSerialConsoleAccessWithContext(aws.Context, *ec2.EnableSerialConsoleAccessInput, ...request.Option) (*ec2.EnableSerialConsoleAccessOutput, error) EnableSerialConsoleAccessWithContext(aws.Context, *ec2.EnableSerialConsoleAccessInput, ...request.Option) (*ec2.EnableSerialConsoleAccessOutput, error)
EnableSerialConsoleAccessRequest(*ec2.EnableSerialConsoleAccessInput) (*request.Request, *ec2.EnableSerialConsoleAccessOutput) EnableSerialConsoleAccessRequest(*ec2.EnableSerialConsoleAccessInput) (*request.Request, *ec2.EnableSerialConsoleAccessOutput)
@ -1828,6 +1855,10 @@ type EC2API interface {
ModifyReservedInstancesWithContext(aws.Context, *ec2.ModifyReservedInstancesInput, ...request.Option) (*ec2.ModifyReservedInstancesOutput, error) ModifyReservedInstancesWithContext(aws.Context, *ec2.ModifyReservedInstancesInput, ...request.Option) (*ec2.ModifyReservedInstancesOutput, error)
ModifyReservedInstancesRequest(*ec2.ModifyReservedInstancesInput) (*request.Request, *ec2.ModifyReservedInstancesOutput) ModifyReservedInstancesRequest(*ec2.ModifyReservedInstancesInput) (*request.Request, *ec2.ModifyReservedInstancesOutput)
ModifySecurityGroupRules(*ec2.ModifySecurityGroupRulesInput) (*ec2.ModifySecurityGroupRulesOutput, error)
ModifySecurityGroupRulesWithContext(aws.Context, *ec2.ModifySecurityGroupRulesInput, ...request.Option) (*ec2.ModifySecurityGroupRulesOutput, error)
ModifySecurityGroupRulesRequest(*ec2.ModifySecurityGroupRulesInput) (*request.Request, *ec2.ModifySecurityGroupRulesOutput)
ModifySnapshotAttribute(*ec2.ModifySnapshotAttributeInput) (*ec2.ModifySnapshotAttributeOutput, error) ModifySnapshotAttribute(*ec2.ModifySnapshotAttributeInput) (*ec2.ModifySnapshotAttributeOutput, error)
ModifySnapshotAttributeWithContext(aws.Context, *ec2.ModifySnapshotAttributeInput, ...request.Option) (*ec2.ModifySnapshotAttributeOutput, error) ModifySnapshotAttributeWithContext(aws.Context, *ec2.ModifySnapshotAttributeInput, ...request.Option) (*ec2.ModifySnapshotAttributeOutput, error)
ModifySnapshotAttributeRequest(*ec2.ModifySnapshotAttributeInput) (*request.Request, *ec2.ModifySnapshotAttributeOutput) ModifySnapshotAttributeRequest(*ec2.ModifySnapshotAttributeInput) (*request.Request, *ec2.ModifySnapshotAttributeOutput)

View File

@ -417,7 +417,8 @@ func (c *ELBV2) CreateLoadBalancerRequest(input *CreateLoadBalancerInput) (req *
// A load balancer with the specified name already exists. // A load balancer with the specified name already exists.
// //
// * ErrCodeTooManyLoadBalancersException "TooManyLoadBalancers" // * ErrCodeTooManyLoadBalancersException "TooManyLoadBalancers"
// You've reached the limit on the number of load balancers for your AWS account. // You've reached the limit on the number of load balancers for your Amazon
// Web Services account.
// //
// * ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest" // * ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest"
// The requested configuration is not valid. // The requested configuration is not valid.
@ -540,7 +541,8 @@ func (c *ELBV2) CreateRuleRequest(input *CreateRuleInput) (req *request.Request,
// The specified priority is in use. // The specified priority is in use.
// //
// * ErrCodeTooManyTargetGroupsException "TooManyTargetGroups" // * ErrCodeTooManyTargetGroupsException "TooManyTargetGroups"
// You've reached the limit on the number of target groups for your AWS account. // You've reached the limit on the number of target groups for your Amazon Web
// Services account.
// //
// * ErrCodeTooManyRulesException "TooManyRules" // * ErrCodeTooManyRulesException "TooManyRules"
// You've reached the limit on the number of rules per load balancer. // You've reached the limit on the number of rules per load balancer.
@ -676,7 +678,8 @@ func (c *ELBV2) CreateTargetGroupRequest(input *CreateTargetGroupInput) (req *re
// A target group with the specified name already exists. // A target group with the specified name already exists.
// //
// * ErrCodeTooManyTargetGroupsException "TooManyTargetGroups" // * ErrCodeTooManyTargetGroupsException "TooManyTargetGroups"
// You've reached the limit on the number of target groups for your AWS account. // You've reached the limit on the number of target groups for your Amazon Web
// Services account.
// //
// * ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest" // * ErrCodeInvalidConfigurationRequestException "InvalidConfigurationRequest"
// The requested configuration is not valid. // The requested configuration is not valid.
@ -1184,8 +1187,8 @@ func (c *ELBV2) DescribeAccountLimitsRequest(input *DescribeAccountLimitsInput)
// DescribeAccountLimits API operation for Elastic Load Balancing. // DescribeAccountLimits API operation for Elastic Load Balancing.
// //
// Describes the current Elastic Load Balancing resource limits for your AWS // Describes the current Elastic Load Balancing resource limits for your Amazon
// account. // Web Services account.
// //
// For more information, see the following: // For more information, see the following:
// //
@ -4683,7 +4686,7 @@ type CreateTargetGroupInput struct {
// [HTTP1 or HTTP2 protocol version] The ping path. The default is /. // [HTTP1 or HTTP2 protocol version] The ping path. The default is /.
// //
// [GRPC protocol version] The path of a custom health check method with the // [GRPC protocol version] The path of a custom health check method with the
// format /package.service/method. The default is /AWS.ALB/healthcheck. // format /package.service/method. The default is /Amazon Web Services.ALB/healthcheck.
HealthCheckPath *string `min:"1" type:"string"` HealthCheckPath *string `min:"1" type:"string"`
// The port the load balancer uses when performing health checks on targets. // The port the load balancer uses when performing health checks on targets.
@ -6365,7 +6368,8 @@ func (s *HttpRequestMethodConditionConfig) SetValues(v []*string) *HttpRequestMe
return s return s
} }
// Information about an Elastic Load Balancing resource limit for your AWS account. // Information about an Elastic Load Balancing resource limit for your Amazon
// Web Services account.
type Limit struct { type Limit struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
@ -6763,7 +6767,8 @@ type LoadBalancerAttribute struct {
// //
// * waf.fail_open.enabled - Indicates whether to allow a WAF-enabled load // * waf.fail_open.enabled - Indicates whether to allow a WAF-enabled load
// balancer to route requests to targets if it is unable to forward the request // balancer to route requests to targets if it is unable to forward the request
// to AWS WAF. The value is true or false. The default is false. // to Amazon Web Services WAF. The value is true or false. The default is
// false.
// //
// The following attribute is supported by Network Load Balancers and Gateway // The following attribute is supported by Network Load Balancers and Gateway
// Load Balancers: // Load Balancers:
@ -7286,16 +7291,19 @@ type ModifyTargetGroupInput struct {
// [HTTP1 or HTTP2 protocol version] The ping path. The default is /. // [HTTP1 or HTTP2 protocol version] The ping path. The default is /.
// //
// [GRPC protocol version] The path of a custom health check method with the // [GRPC protocol version] The path of a custom health check method with the
// format /package.service/method. The default is /AWS.ALB/healthcheck. // format /package.service/method. The default is /Amazon Web Services.ALB/healthcheck.
HealthCheckPath *string `min:"1" type:"string"` HealthCheckPath *string `min:"1" type:"string"`
// The port the load balancer uses when performing health checks on targets. // The port the load balancer uses when performing health checks on targets.
HealthCheckPort *string `type:"string"` HealthCheckPort *string `type:"string"`
// The protocol the load balancer uses when performing health checks on targets. // The protocol the load balancer uses when performing health checks on targets.
// The TCP protocol is supported for health checks only if the protocol of the // For Application Load Balancers, the default is HTTP. For Network Load Balancers
// target group is TCP, TLS, UDP, or TCP_UDP. The GENEVE, TLS, UDP, and TCP_UDP // and Gateway Load Balancers, the default is TCP. The TCP protocol is not supported
// protocols are not supported for health checks. // for health checks if the protocol of the target group is HTTP or HTTPS. It
// is supported for health checks only if the protocol of the target group is
// TCP, TLS, UDP, or TCP_UDP. The GENEVE, TLS, UDP, and TCP_UDP protocols are
// not supported for health checks.
// //
// With Network Load Balancers, you can't modify this setting. // With Network Load Balancers, you can't modify this setting.
HealthCheckProtocol *string `type:"string" enum:"ProtocolEnum"` HealthCheckProtocol *string `type:"string" enum:"ProtocolEnum"`
@ -8982,8 +8990,9 @@ type TargetGroupAttribute struct {
// default is 0 seconds (disabled). // default is 0 seconds (disabled).
// //
// * stickiness.app_cookie.cookie_name - Indicates the name of the application-based // * stickiness.app_cookie.cookie_name - Indicates the name of the application-based
// cookie. Names that start with the following names are not allowed: AWSALB, // cookie. Names that start with the following prefixes are not allowed:
// AWSALBAPP, and AWSALBTG. They're reserved for use by the load balancer. // AWSALB, AWSALBAPP, and AWSALBTG; they're reserved for use by the load
// balancer.
// //
// * stickiness.app_cookie.duration_seconds - The time period, in seconds, // * stickiness.app_cookie.duration_seconds - The time period, in seconds,
// during which requests from a client should be routed to the same target. // during which requests from a client should be routed to the same target.

View File

@ -183,7 +183,8 @@ const (
// ErrCodeTooManyLoadBalancersException for service response error code // ErrCodeTooManyLoadBalancersException for service response error code
// "TooManyLoadBalancers". // "TooManyLoadBalancers".
// //
// You've reached the limit on the number of load balancers for your AWS account. // You've reached the limit on the number of load balancers for your Amazon
// Web Services account.
ErrCodeTooManyLoadBalancersException = "TooManyLoadBalancers" ErrCodeTooManyLoadBalancersException = "TooManyLoadBalancers"
// ErrCodeTooManyRegistrationsForTargetIdException for service response error code // ErrCodeTooManyRegistrationsForTargetIdException for service response error code
@ -208,7 +209,8 @@ const (
// ErrCodeTooManyTargetGroupsException for service response error code // ErrCodeTooManyTargetGroupsException for service response error code
// "TooManyTargetGroups". // "TooManyTargetGroups".
// //
// You've reached the limit on the number of target groups for your AWS account. // You've reached the limit on the number of target groups for your Amazon Web
// Services account.
ErrCodeTooManyTargetGroupsException = "TooManyTargetGroups" ErrCodeTooManyTargetGroupsException = "TooManyTargetGroups"
// ErrCodeTooManyTargetsException for service response error code // ErrCodeTooManyTargetsException for service response error code

View File

@ -1358,6 +1358,10 @@ func (c *EventBridge) DeleteRuleRequest(input *DeleteRuleInput) (req *request.Re
// When you delete a rule, incoming events might continue to match to the deleted // When you delete a rule, incoming events might continue to match to the deleted
// rule. Allow a short period of time for changes to take effect. // rule. Allow a short period of time for changes to take effect.
// //
// If you call delete rule multiple times for the same rule, all calls will
// succeed. When you call delete rule for a non-existent custom eventbus, ResourceNotFoundException
// is returned.
//
// Managed rules are rules created and managed by another AWS service on your // Managed rules are rules created and managed by another AWS service on your
// behalf. These rules are created by those other AWS services to support functionality // behalf. These rules are created by those other AWS services to support functionality
// in those services. You can delete these rules using the Force option, but // in those services. You can delete these rules using the Force option, but
@ -3763,43 +3767,55 @@ func (c *EventBridge) PutTargetsRequest(input *PutTargetsInput) (req *request.Re
// //
// You can configure the following as targets for Events: // You can configure the following as targets for Events:
// //
// * EC2 instances // * API destination (https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-api-destinations.html)
// //
// * SSM Run Command // * Amazon API Gateway REST API endpoints
// //
// * SSM Automation // * API Gateway
// //
// * AWS Lambda functions // * AWS Batch job queue
// //
// * Data streams in Amazon Kinesis Data Streams // * CloudWatch Logs group
// //
// * Data delivery streams in Amazon Kinesis Data Firehose // * CodeBuild project
//
// * CodePineline
//
// * Amazon EC2 CreateSnapshot API call
//
// * Amazon EC2 RebootInstances API call
//
// * Amazon EC2 StopInstances API call
//
// * Amazon EC2 TerminateInstances API call
// //
// * Amazon ECS tasks // * Amazon ECS tasks
// //
// * AWS Step Functions state machines // * Event bus in a different AWS account or Region. You can use an event
// bus in the US East (N. Virginia) us-east-1, US West (Oregon) us-west-2,
// or Europe (Ireland) eu-west-1 Regions as a target for a rule.
// //
// * AWS Batch jobs // * Firehose delivery stream (Kinesis Data Firehose)
// //
// * AWS CodeBuild projects // * Inspector assessment template (Amazon Inspector)
// //
// * Pipelines in AWS CodePipeline // * Kinesis stream (Kinesis Data Stream)
// //
// * Amazon Inspector assessment templates // * AWS Lambda function
// //
// * Amazon SNS topics // * Redshift clusters (Data API statement execution)
// //
// * Amazon SQS queues, including FIFO queues // * Amazon SNS topic
// //
// * The default event bus of another AWS account // * Amazon SQS queues (includes FIFO queues
// //
// * Amazon API Gateway REST APIs // * SSM Automation
// //
// * Redshift Clusters to invoke Data API ExecuteStatement on // * SSM OpsItem
// //
// * Custom/SaaS HTTPS APIs via EventBridge API Destinations // * SSM Run Command
// //
// * Amazon SageMaker Model Building Pipelines // * Step Functions state machines
// //
// Creating rules with built-in targets is supported only in the AWS Management // Creating rules with built-in targets is supported only in the AWS Management
// Console. The built-in targets are EC2 CreateSnapshot API call, EC2 RebootInstances // Console. The built-in targets are EC2 CreateSnapshot API call, EC2 RebootInstances
@ -4461,7 +4477,7 @@ func (c *EventBridge) UntagResourceRequest(input *UntagResourceInput) (req *requ
// UntagResource API operation for Amazon EventBridge. // UntagResource API operation for Amazon EventBridge.
// //
// Removes one or more tags from the specified EventBridge resource. In Amazon // Removes one or more tags from the specified EventBridge resource. In Amazon
// EventBridge (CloudWatch Events, rules and event buses can be tagged. // EventBridge (CloudWatch Events), rules and event buses can be tagged.
// //
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about // with awserr.Error's Code and Message methods to get detailed information about
@ -5300,6 +5316,73 @@ func (s *CancelReplayOutput) SetStateReason(v string) *CancelReplayOutput {
return s return s
} }
// The details of a capacity provider strategy. To learn more, see CapacityProviderStrategyItem
// (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CapacityProviderStrategyItem.html)
// in the Amazon ECS API Reference.
type CapacityProviderStrategyItem struct {
_ struct{} `type:"structure"`
// The base value designates how many tasks, at a minimum, to run on the specified
// capacity provider. Only one capacity provider in a capacity provider strategy
// can have a base defined. If no value is specified, the default value of 0
// is used.
Base *int64 `locationName:"base" type:"integer"`
// The short name of the capacity provider.
//
// CapacityProvider is a required field
CapacityProvider *string `locationName:"capacityProvider" min:"1" type:"string" required:"true"`
// The weight value designates the relative percentage of the total number of
// tasks launched that should use the specified capacity provider. The weight
// value is taken into consideration after the base value, if defined, is satisfied.
Weight *int64 `locationName:"weight" type:"integer"`
}
// String returns the string representation
func (s CapacityProviderStrategyItem) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s CapacityProviderStrategyItem) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *CapacityProviderStrategyItem) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "CapacityProviderStrategyItem"}
if s.CapacityProvider == nil {
invalidParams.Add(request.NewErrParamRequired("CapacityProvider"))
}
if s.CapacityProvider != nil && len(*s.CapacityProvider) < 1 {
invalidParams.Add(request.NewErrParamMinLen("CapacityProvider", 1))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// SetBase sets the Base field's value.
func (s *CapacityProviderStrategyItem) SetBase(v int64) *CapacityProviderStrategyItem {
s.Base = &v
return s
}
// SetCapacityProvider sets the CapacityProvider field's value.
func (s *CapacityProviderStrategyItem) SetCapacityProvider(v string) *CapacityProviderStrategyItem {
s.CapacityProvider = &v
return s
}
// SetWeight sets the Weight field's value.
func (s *CapacityProviderStrategyItem) SetWeight(v int64) *CapacityProviderStrategyItem {
s.Weight = &v
return s
}
// There is concurrent modification on a rule, target, archive, or replay. // There is concurrent modification on a rule, target, archive, or replay.
type ConcurrentModificationException struct { type ConcurrentModificationException struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
@ -8576,6 +8659,23 @@ func (s DisableRuleOutput) GoString() string {
type EcsParameters struct { type EcsParameters struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
// The capacity provider strategy to use for the task.
//
// If a capacityProviderStrategy is specified, the launchType parameter must
// be omitted. If no capacityProviderStrategy or launchType is specified, the
// defaultCapacityProviderStrategy for the cluster is used.
CapacityProviderStrategy []*CapacityProviderStrategyItem `type:"list"`
// Specifies whether to enable Amazon ECS managed tags for the task. For more
// information, see Tagging Your Amazon ECS Resources (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html)
// in the Amazon Elastic Container Service Developer Guide.
EnableECSManagedTags *bool `type:"boolean"`
// Whether or not to enable the execute command functionality for the containers
// in this task. If true, this enables execute command functionality on all
// containers in the task.
EnableExecuteCommand *bool `type:"boolean"`
// Specifies an ECS task group for the task. The maximum length is 255 characters. // Specifies an ECS task group for the task. The maximum length is 255 characters.
Group *string `type:"string"` Group *string `type:"string"`
@ -8596,6 +8696,15 @@ type EcsParameters struct {
// the awsvpc network mode, the task fails. // the awsvpc network mode, the task fails.
NetworkConfiguration *NetworkConfiguration `type:"structure"` NetworkConfiguration *NetworkConfiguration `type:"structure"`
// An array of placement constraint objects to use for the task. You can specify
// up to 10 constraints per task (including constraints in the task definition
// and those specified at runtime).
PlacementConstraints []*PlacementConstraint `type:"list"`
// The placement strategy objects to use for the task. You can specify a maximum
// of five strategy rules per task.
PlacementStrategy []*PlacementStrategy `type:"list"`
// Specifies the platform version for the task. Specify only the numeric portion // Specifies the platform version for the task. Specify only the numeric portion
// of the platform version, such as 1.1.0. // of the platform version, such as 1.1.0.
// //
@ -8604,6 +8713,21 @@ type EcsParameters struct {
// in the Amazon Elastic Container Service Developer Guide. // in the Amazon Elastic Container Service Developer Guide.
PlatformVersion *string `type:"string"` PlatformVersion *string `type:"string"`
// Specifies whether to propagate the tags from the task definition to the task.
// If no value is specified, the tags are not propagated. Tags can only be propagated
// to the task during task creation. To add tags to a task after task creation,
// use the TagResource API action.
PropagateTags *string `type:"string" enum:"PropagateTags"`
// The reference ID to use for the task.
ReferenceId *string `type:"string"`
// The metadata that you apply to the task to help you categorize and organize
// them. Each tag consists of a key and an optional value, both of which you
// define. To learn more, see RunTask (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html#ECS-RunTask-request-tags)
// in the Amazon ECS API Reference.
Tags []*Tag `type:"list"`
// The number of tasks to create based on TaskDefinition. The default is 1. // The number of tasks to create based on TaskDefinition. The default is 1.
TaskCount *int64 `min:"1" type:"integer"` TaskCount *int64 `min:"1" type:"integer"`
@ -8636,11 +8760,31 @@ func (s *EcsParameters) Validate() error {
if s.TaskDefinitionArn != nil && len(*s.TaskDefinitionArn) < 1 { if s.TaskDefinitionArn != nil && len(*s.TaskDefinitionArn) < 1 {
invalidParams.Add(request.NewErrParamMinLen("TaskDefinitionArn", 1)) invalidParams.Add(request.NewErrParamMinLen("TaskDefinitionArn", 1))
} }
if s.CapacityProviderStrategy != nil {
for i, v := range s.CapacityProviderStrategy {
if v == nil {
continue
}
if err := v.Validate(); err != nil {
invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CapacityProviderStrategy", i), err.(request.ErrInvalidParams))
}
}
}
if s.NetworkConfiguration != nil { if s.NetworkConfiguration != nil {
if err := s.NetworkConfiguration.Validate(); err != nil { if err := s.NetworkConfiguration.Validate(); err != nil {
invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams)) invalidParams.AddNested("NetworkConfiguration", err.(request.ErrInvalidParams))
} }
} }
if s.Tags != nil {
for i, v := range s.Tags {
if v == nil {
continue
}
if err := v.Validate(); err != nil {
invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
}
}
}
if invalidParams.Len() > 0 { if invalidParams.Len() > 0 {
return invalidParams return invalidParams
@ -8648,6 +8792,24 @@ func (s *EcsParameters) Validate() error {
return nil return nil
} }
// SetCapacityProviderStrategy sets the CapacityProviderStrategy field's value.
func (s *EcsParameters) SetCapacityProviderStrategy(v []*CapacityProviderStrategyItem) *EcsParameters {
s.CapacityProviderStrategy = v
return s
}
// SetEnableECSManagedTags sets the EnableECSManagedTags field's value.
func (s *EcsParameters) SetEnableECSManagedTags(v bool) *EcsParameters {
s.EnableECSManagedTags = &v
return s
}
// SetEnableExecuteCommand sets the EnableExecuteCommand field's value.
func (s *EcsParameters) SetEnableExecuteCommand(v bool) *EcsParameters {
s.EnableExecuteCommand = &v
return s
}
// SetGroup sets the Group field's value. // SetGroup sets the Group field's value.
func (s *EcsParameters) SetGroup(v string) *EcsParameters { func (s *EcsParameters) SetGroup(v string) *EcsParameters {
s.Group = &v s.Group = &v
@ -8666,12 +8828,42 @@ func (s *EcsParameters) SetNetworkConfiguration(v *NetworkConfiguration) *EcsPar
return s return s
} }
// SetPlacementConstraints sets the PlacementConstraints field's value.
func (s *EcsParameters) SetPlacementConstraints(v []*PlacementConstraint) *EcsParameters {
s.PlacementConstraints = v
return s
}
// SetPlacementStrategy sets the PlacementStrategy field's value.
func (s *EcsParameters) SetPlacementStrategy(v []*PlacementStrategy) *EcsParameters {
s.PlacementStrategy = v
return s
}
// SetPlatformVersion sets the PlatformVersion field's value. // SetPlatformVersion sets the PlatformVersion field's value.
func (s *EcsParameters) SetPlatformVersion(v string) *EcsParameters { func (s *EcsParameters) SetPlatformVersion(v string) *EcsParameters {
s.PlatformVersion = &v s.PlatformVersion = &v
return s return s
} }
// SetPropagateTags sets the PropagateTags field's value.
func (s *EcsParameters) SetPropagateTags(v string) *EcsParameters {
s.PropagateTags = &v
return s
}
// SetReferenceId sets the ReferenceId field's value.
func (s *EcsParameters) SetReferenceId(v string) *EcsParameters {
s.ReferenceId = &v
return s
}
// SetTags sets the Tags field's value.
func (s *EcsParameters) SetTags(v []*Tag) *EcsParameters {
s.Tags = v
return s
}
// SetTaskCount sets the TaskCount field's value. // SetTaskCount sets the TaskCount field's value.
func (s *EcsParameters) SetTaskCount(v int64) *EcsParameters { func (s *EcsParameters) SetTaskCount(v int64) *EcsParameters {
s.TaskCount = &v s.TaskCount = &v
@ -8753,11 +8945,10 @@ func (s EnableRuleOutput) GoString() string {
} }
// An event bus receives events from a source and routes them to rules associated // An event bus receives events from a source and routes them to rules associated
// with that event bus. Your account's default event bus receives rules from // with that event bus. Your account's default event bus receives events from
// AWS services. A custom event bus can receive rules from AWS services as well // AWS services. A custom event bus can receive events from your custom applications
// as your custom applications and services. A partner event bus receives events // and services. A partner event bus receives events from an event source created
// from an event source created by an SaaS partner. These events come from the // by an SaaS partner. These events come from the partners services or applications.
// partners services or applications.
type EventBus struct { type EventBus struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
@ -10829,6 +11020,92 @@ func (s *PartnerEventSourceAccount) SetState(v string) *PartnerEventSourceAccoun
return s return s
} }
// An object representing a constraint on task placement. To learn more, see
// Task Placement Constraints (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html)
// in the Amazon Elastic Container Service Developer Guide.
type PlacementConstraint struct {
_ struct{} `type:"structure"`
// A cluster query language expression to apply to the constraint. You cannot
// specify an expression if the constraint type is distinctInstance. To learn
// more, see Cluster Query Language (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html)
// in the Amazon Elastic Container Service Developer Guide.
Expression *string `locationName:"expression" type:"string"`
// The type of constraint. Use distinctInstance to ensure that each task in
// a particular group is running on a different container instance. Use memberOf
// to restrict the selection to a group of valid candidates.
Type *string `locationName:"type" type:"string" enum:"PlacementConstraintType"`
}
// String returns the string representation
func (s PlacementConstraint) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s PlacementConstraint) GoString() string {
return s.String()
}
// SetExpression sets the Expression field's value.
func (s *PlacementConstraint) SetExpression(v string) *PlacementConstraint {
s.Expression = &v
return s
}
// SetType sets the Type field's value.
func (s *PlacementConstraint) SetType(v string) *PlacementConstraint {
s.Type = &v
return s
}
// The task placement strategy for a task or service. To learn more, see Task
// Placement Strategies (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html)
// in the Amazon Elastic Container Service Developer Guide.
type PlacementStrategy struct {
_ struct{} `type:"structure"`
// The field to apply the placement strategy against. For the spread placement
// strategy, valid values are instanceId (or host, which has the same effect),
// or any platform or custom attribute that is applied to a container instance,
// such as attribute:ecs.availability-zone. For the binpack placement strategy,
// valid values are cpu and memory. For the random placement strategy, this
// field is not used.
Field *string `locationName:"field" type:"string"`
// The type of placement strategy. The random placement strategy randomly places
// tasks on available candidates. The spread placement strategy spreads placement
// across available candidates evenly based on the field parameter. The binpack
// strategy places tasks on available candidates that have the least available
// amount of the resource that is specified with the field parameter. For example,
// if you binpack on memory, a task is placed on the instance with the least
// amount of remaining memory (but still enough to run the task).
Type *string `locationName:"type" type:"string" enum:"PlacementStrategyType"`
}
// String returns the string representation
func (s PlacementStrategy) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation
func (s PlacementStrategy) GoString() string {
return s.String()
}
// SetField sets the Field field's value.
func (s *PlacementStrategy) SetField(v string) *PlacementStrategy {
s.Field = &v
return s
}
// SetType sets the Type field's value.
func (s *PlacementStrategy) SetType(v string) *PlacementStrategy {
s.Type = &v
return s
}
// The event bus policy is too long. For more information, see the limits. // The event bus policy is too long. For more information, see the limits.
type PolicyLengthExceededException struct { type PolicyLengthExceededException struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
@ -14399,6 +14676,54 @@ func LaunchType_Values() []string {
} }
} }
const (
// PlacementConstraintTypeDistinctInstance is a PlacementConstraintType enum value
PlacementConstraintTypeDistinctInstance = "distinctInstance"
// PlacementConstraintTypeMemberOf is a PlacementConstraintType enum value
PlacementConstraintTypeMemberOf = "memberOf"
)
// PlacementConstraintType_Values returns all elements of the PlacementConstraintType enum
func PlacementConstraintType_Values() []string {
return []string{
PlacementConstraintTypeDistinctInstance,
PlacementConstraintTypeMemberOf,
}
}
const (
// PlacementStrategyTypeRandom is a PlacementStrategyType enum value
PlacementStrategyTypeRandom = "random"
// PlacementStrategyTypeSpread is a PlacementStrategyType enum value
PlacementStrategyTypeSpread = "spread"
// PlacementStrategyTypeBinpack is a PlacementStrategyType enum value
PlacementStrategyTypeBinpack = "binpack"
)
// PlacementStrategyType_Values returns all elements of the PlacementStrategyType enum
func PlacementStrategyType_Values() []string {
return []string{
PlacementStrategyTypeRandom,
PlacementStrategyTypeSpread,
PlacementStrategyTypeBinpack,
}
}
const (
// PropagateTagsTaskDefinition is a PropagateTags enum value
PropagateTagsTaskDefinition = "TASK_DEFINITION"
)
// PropagateTags_Values returns all elements of the PropagateTags enum
func PropagateTags_Values() []string {
return []string{
PropagateTagsTaskDefinition,
}
}
const ( const (
// ReplayStateStarting is a ReplayState enum value // ReplayStateStarting is a ReplayState enum value
ReplayStateStarting = "STARTING" ReplayStateStarting = "STARTING"

File diff suppressed because it is too large Load Diff

View File

@ -3,12 +3,12 @@
// Package iam provides the client and types for making API // Package iam provides the client and types for making API
// requests to AWS Identity and Access Management. // requests to AWS Identity and Access Management.
// //
// AWS Identity and Access Management (IAM) is a web service for securely controlling // Identity and Access Management (IAM) is a web service for securely controlling
// access to AWS services. With IAM, you can centrally manage users, security // access to Amazon Web Services services. With IAM, you can centrally manage
// credentials such as access keys, and permissions that control which AWS resources // users, security credentials such as access keys, and permissions that control
// users and applications can access. For more information about IAM, see AWS // which Amazon Web Services resources users and applications can access. For
// Identity and Access Management (IAM) (http://aws.amazon.com/iam/) and the // more information about IAM, see Identity and Access Management (IAM) (http://aws.amazon.com/iam/)
// AWS Identity and Access Management User Guide (https://docs.aws.amazon.com/IAM/latest/UserGuide/). // and the Identity and Access Management User Guide (https://docs.aws.amazon.com/IAM/latest/UserGuide/).
// //
// See https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08 for more information on this service. // See https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08 for more information on this service.
// //

View File

@ -117,7 +117,8 @@ const (
// "LimitExceeded". // "LimitExceeded".
// //
// The request was rejected because it attempted to create resources beyond // The request was rejected because it attempted to create resources beyond
// the current AWS account limits. The error message describes the limit exceeded. // the current Amazon Web Services account limits. The error message describes
// the limit exceeded.
ErrCodeLimitExceededException = "LimitExceeded" ErrCodeLimitExceededException = "LimitExceeded"
// ErrCodeMalformedCertificateException for service response error code // ErrCodeMalformedCertificateException for service response error code
@ -158,8 +159,8 @@ const (
// ErrCodePolicyNotAttachableException for service response error code // ErrCodePolicyNotAttachableException for service response error code
// "PolicyNotAttachable". // "PolicyNotAttachable".
// //
// The request failed because AWS service role policies can only be attached // The request failed because Amazon Web Services service role policies can
// to the service-linked role for that service. // only be attached to the service-linked role for that service.
ErrCodePolicyNotAttachableException = "PolicyNotAttachable" ErrCodePolicyNotAttachableException = "PolicyNotAttachable"
// ErrCodeReportGenerationLimitExceededException for service response error code // ErrCodeReportGenerationLimitExceededException for service response error code

View File

@ -562,6 +562,9 @@ type IAMAPI interface {
ListUserTagsWithContext(aws.Context, *iam.ListUserTagsInput, ...request.Option) (*iam.ListUserTagsOutput, error) ListUserTagsWithContext(aws.Context, *iam.ListUserTagsInput, ...request.Option) (*iam.ListUserTagsOutput, error)
ListUserTagsRequest(*iam.ListUserTagsInput) (*request.Request, *iam.ListUserTagsOutput) ListUserTagsRequest(*iam.ListUserTagsInput) (*request.Request, *iam.ListUserTagsOutput)
ListUserTagsPages(*iam.ListUserTagsInput, func(*iam.ListUserTagsOutput, bool) bool) error
ListUserTagsPagesWithContext(aws.Context, *iam.ListUserTagsInput, func(*iam.ListUserTagsOutput, bool) bool, ...request.Option) error
ListUsers(*iam.ListUsersInput) (*iam.ListUsersOutput, error) ListUsers(*iam.ListUsersInput) (*iam.ListUsersOutput, error)
ListUsersWithContext(aws.Context, *iam.ListUsersInput, ...request.Option) (*iam.ListUsersOutput, error) ListUsersWithContext(aws.Context, *iam.ListUsersInput, ...request.Option) (*iam.ListUsersOutput, error)
ListUsersRequest(*iam.ListUsersInput) (*request.Request, *iam.ListUsersOutput) ListUsersRequest(*iam.ListUsersInput) (*request.Request, *iam.ListUsersOutput)

File diff suppressed because it is too large Load Diff

View File

@ -356,9 +356,8 @@ func (c *S3) CopyObjectRequest(input *CopyObjectInput) (req *request.Request, ou
// use the s3:x-amz-metadata-directive condition key to enforce certain metadata // use the s3:x-amz-metadata-directive condition key to enforce certain metadata
// behavior when objects are uploaded. For more information, see Specifying // behavior when objects are uploaded. For more information, see Specifying
// Conditions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/amazon-s3-policy-keys.html) // Conditions in a Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/amazon-s3-policy-keys.html)
// in the Amazon S3 Developer Guide. For a complete list of Amazon S3-specific // in the Amazon S3 User Guide. For a complete list of Amazon S3-specific condition
// condition keys, see Actions, Resources, and Condition Keys for Amazon S3 // keys, see Actions, Resources, and Condition Keys for Amazon S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html).
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html).
// //
// x-amz-copy-source-if Headers // x-amz-copy-source-if Headers
// //
@ -422,7 +421,7 @@ func (c *S3) CopyObjectRequest(input *CopyObjectInput) (req *request.Request, ou
// You can use the CopyObject action to change the storage class of an object // You can use the CopyObject action to change the storage class of an object
// that is already stored in Amazon S3 using the StorageClass parameter. For // that is already stored in Amazon S3 using the StorageClass parameter. For
// more information, see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) // more information, see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html)
// in the Amazon S3 Service Developer Guide. // in the Amazon S3 User Guide.
// //
// Versioning // Versioning
// //
@ -535,7 +534,7 @@ func (c *S3) CreateBucketRequest(input *CreateBucketInput) (req *request.Request
// become the bucket owner. // become the bucket owner.
// //
// Not every string is an acceptable bucket name. For information about bucket // Not every string is an acceptable bucket name. For information about bucket
// naming restrictions, see Working with Amazon S3 buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html). // naming restrictions, see Bucket naming rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html).
// //
// If you want to create an Amazon S3 on Outposts bucket, see Create Bucket // If you want to create an Amazon S3 on Outposts bucket, see Create Bucket
// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html). // (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html).
@ -723,10 +722,11 @@ func (c *S3) CreateMultipartUploadRequest(input *CreateMultipartUploadInput) (re
// by using CreateMultipartUpload. // by using CreateMultipartUpload.
// //
// To perform a multipart upload with encryption using an AWS KMS CMK, the requester // To perform a multipart upload with encryption using an AWS KMS CMK, the requester
// must have permission to the kms:Encrypt, kms:Decrypt, kms:ReEncrypt*, kms:GenerateDataKey*, // must have permission to the kms:Decrypt and kms:GenerateDataKey* actions
// and kms:DescribeKey actions on the key. These permissions are required because // on the key. These permissions are required because Amazon S3 must decrypt
// Amazon S3 must decrypt and read data from the encrypted file parts before // and read data from the encrypted file parts before it completes the multipart
// it completes the multipart upload. // upload. For more information, see Multipart upload API and permissions (https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions)
// in the Amazon S3 User Guide.
// //
// If your AWS Identity and Access Management (IAM) user or role is in the same // If your AWS Identity and Access Management (IAM) user or role is in the same
// AWS account as the AWS KMS CMK, then you must have these permissions on the // AWS account as the AWS KMS CMK, then you must have these permissions on the
@ -1835,7 +1835,7 @@ func (c *S3) DeleteBucketReplicationRequest(input *DeleteBucketReplicationInput)
// propagate. // propagate.
// //
// For information about replication configuration, see Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) // For information about replication configuration, see Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
// //
// The following operations are related to DeleteBucketReplication: // The following operations are related to DeleteBucketReplication:
// //
@ -6497,12 +6497,13 @@ func (c *S3) ListObjectsV2Request(input *ListObjectsV2Input) (req *request.Reque
// ListObjectsV2 API operation for Amazon Simple Storage Service. // ListObjectsV2 API operation for Amazon Simple Storage Service.
// //
// Returns some or all (up to 1,000) of the objects in a bucket. You can use // Returns some or all (up to 1,000) of the objects in a bucket with each request.
// the request parameters as selection criteria to return a subset of the objects // You can use the request parameters as selection criteria to return a subset
// in a bucket. A 200 OK response can contain valid or invalid XML. Make sure // of the objects in a bucket. A 200 OK response can contain valid or invalid
// to design your application to parse the contents of the response and handle // XML. Make sure to design your application to parse the contents of the response
// it appropriately. Objects are returned sorted in an ascending order of the // and handle it appropriately. Objects are returned sorted in an ascending
// respective key names in the list. // order of the respective key names in the list. For more information about
// listing objects, see Listing object keys programmatically (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ListingKeysUsingAPIs.html)
// //
// To use this operation, you must have READ access to the bucket. // To use this operation, you must have READ access to the bucket.
// //
@ -7816,7 +7817,7 @@ func (c *S3) PutBucketLifecycleConfigurationRequest(input *PutBucketLifecycleCon
// //
// Creates a new lifecycle configuration for the bucket or replaces an existing // Creates a new lifecycle configuration for the bucket or replaces an existing
// lifecycle configuration. For information about lifecycle configuration, see // lifecycle configuration. For information about lifecycle configuration, see
// Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html). // Managing your storage lifecycle (https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html).
// //
// Bucket lifecycle configuration now supports specifying a lifecycle rule using // Bucket lifecycle configuration now supports specifying a lifecycle rule using
// an object key name prefix, one or more object tags, or a combination of both. // an object key name prefix, one or more object tags, or a combination of both.
@ -8587,7 +8588,7 @@ func (c *S3) PutBucketReplicationRequest(input *PutBucketReplicationInput) (req
// //
// Creates a replication configuration or replaces an existing one. For more // Creates a replication configuration or replaces an existing one. For more
// information, see Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) // information, see Replication (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
// //
// To perform this operation, the user or role performing the action must have // To perform this operation, the user or role performing the action must have
// the iam:PassRole (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) // the iam:PassRole (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html)
@ -8814,11 +8815,12 @@ func (c *S3) PutBucketTaggingRequest(input *PutBucketTaggingInput) (req *request
// according to resources with the same tag key values. For example, you can // according to resources with the same tag key values. For example, you can
// tag several resources with a specific application name, and then organize // tag several resources with a specific application name, and then organize
// your billing information to see the total cost of that application across // your billing information to see the total cost of that application across
// several services. For more information, see Cost Allocation and Tagging (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html). // several services. For more information, see Cost Allocation and Tagging (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)
// and Using Cost Allocation in Amazon S3 Bucket Tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/CostAllocTagging.html).
// //
// Within a bucket, if you add a tag that has the same key as an existing tag, // When this operation sets the tags for a bucket, it will overwrite any current
// the new value overwrites the old value. For more information, see Using Cost // tags the bucket already has. You cannot use this operation to add tags to
// Allocation in Amazon S3 Bucket Tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/CostAllocTagging.html). // an existing list of tags.
// //
// To use this operation, you must have permissions to perform the s3:PutBucketTagging // To use this operation, you must have permissions to perform the s3:PutBucketTagging
// action. The bucket owner has this permission by default and can grant this // action. The bucket owner has this permission by default and can grant this
@ -9229,7 +9231,7 @@ func (c *S3) PutObjectRequest(input *PutObjectInput) (req *request.Request, outp
// Depending on performance needs, you can specify a different Storage Class. // Depending on performance needs, you can specify a different Storage Class.
// Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, // Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information,
// see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) // see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html)
// in the Amazon S3 Service Developer Guide. // in the Amazon S3 User Guide.
// //
// Versioning // Versioning
// //
@ -9339,7 +9341,7 @@ func (c *S3) PutObjectAclRequest(input *PutObjectAclInput) (req *request.Request
// have an existing application that updates a bucket ACL using the request // have an existing application that updates a bucket ACL using the request
// body, you can continue to use that approach. For more information, see Access // body, you can continue to use that approach. For more information, see Access
// Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html) // Control List (ACL) Overview (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
// //
// Access Permissions // Access Permissions
// //
@ -10997,7 +10999,7 @@ type AbortMultipartUploadInput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// When using this action with Amazon S3 on Outposts, you must direct requests // When using this action with Amazon S3 on Outposts, you must direct requests
@ -11025,7 +11027,7 @@ type AbortMultipartUploadInput struct {
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from requester pays buckets, see Downloading Objects // about downloading objects from requester pays buckets, see Downloading Objects
// in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
// Upload ID that identifies the multipart upload. // Upload ID that identifies the multipart upload.
@ -11242,7 +11244,7 @@ type AccessControlTranslation struct {
// Specifies the replica ownership. For default and valid values, see PUT bucket // Specifies the replica ownership. For default and valid values, see PUT bucket
// replication (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) // replication (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html)
// in the Amazon Simple Storage Service API Reference. // in the Amazon S3 API Reference.
// //
// Owner is a required field // Owner is a required field
Owner *string `type:"string" required:"true" enum:"OwnerOverride"` Owner *string `type:"string" required:"true" enum:"OwnerOverride"`
@ -11693,7 +11695,7 @@ type BucketLoggingStatus struct {
// Describes where logs are stored and the prefix that Amazon S3 assigns to // Describes where logs are stored and the prefix that Amazon S3 assigns to
// all log object keys for a bucket. For more information, see PUT Bucket logging // all log object keys for a bucket. For more information, see PUT Bucket logging
// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html) // (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html)
// in the Amazon Simple Storage Service API Reference. // in the Amazon S3 API Reference.
LoggingEnabled *LoggingEnabled `type:"structure"` LoggingEnabled *LoggingEnabled `type:"structure"`
} }
@ -12168,7 +12170,7 @@ type CompleteMultipartUploadInput struct {
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from requester pays buckets, see Downloading Objects // about downloading objects from requester pays buckets, see Downloading Objects
// in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
// ID for the initiated multipart upload. // ID for the initiated multipart upload.
@ -12291,7 +12293,7 @@ type CompleteMultipartUploadOutput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// When using this action with Amazon S3 on Outposts, you must direct requests // When using this action with Amazon S3 on Outposts, you must direct requests
@ -12577,7 +12579,7 @@ type CopyObjectInput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// When using this action with Amazon S3 on Outposts, you must direct requests // When using this action with Amazon S3 on Outposts, you must direct requests
@ -12735,7 +12737,7 @@ type CopyObjectInput struct {
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from requester pays buckets, see Downloading Objects // about downloading objects from requester pays buckets, see Downloading Objects
// in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
// Specifies the algorithm to use to when encrypting the object (for example, // Specifies the algorithm to use to when encrypting the object (for example,
@ -12764,7 +12766,7 @@ type CopyObjectInput struct {
// or using SigV4. For information about configuring using any of the officially // or using SigV4. For information about configuring using any of the officially
// supported AWS SDKs and AWS CLI, see Specifying the Signature Version in Request // supported AWS SDKs and AWS CLI, see Specifying the Signature Version in Request
// Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version) // Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
// The server-side encryption algorithm used when storing this object in Amazon // The server-side encryption algorithm used when storing this object in Amazon
@ -12776,7 +12778,7 @@ type CopyObjectInput struct {
// Depending on performance needs, you can specify a different Storage Class. // Depending on performance needs, you can specify a different Storage Class.
// Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, // Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information,
// see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) // see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html)
// in the Amazon S3 Service Developer Guide. // in the Amazon S3 User Guide.
StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"` StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"`
// The tag-set for the object destination object this value must be used in // The tag-set for the object destination object this value must be used in
@ -13358,7 +13360,10 @@ type CreateBucketInput struct {
// Allows grantee to read the bucket ACL. // Allows grantee to read the bucket ACL.
GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"` GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"`
// Allows grantee to create, overwrite, and delete any object in the bucket. // Allows grantee to create new objects in the bucket.
//
// For the bucket and object owners of existing objects, also allows deletions
// and overwrites of those objects.
GrantWrite *string `location:"header" locationName:"x-amz-grant-write" type:"string"` GrantWrite *string `location:"header" locationName:"x-amz-grant-write" type:"string"`
// Allows grantee to write the ACL for the applicable bucket. // Allows grantee to write the ACL for the applicable bucket.
@ -13494,7 +13499,7 @@ type CreateMultipartUploadInput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// When using this action with Amazon S3 on Outposts, you must direct requests // When using this action with Amazon S3 on Outposts, you must direct requests
@ -13583,7 +13588,7 @@ type CreateMultipartUploadInput struct {
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from requester pays buckets, see Downloading Objects // about downloading objects from requester pays buckets, see Downloading Objects
// in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
// Specifies the algorithm to use to when encrypting the object (for example, // Specifies the algorithm to use to when encrypting the object (for example,
@ -13612,7 +13617,7 @@ type CreateMultipartUploadInput struct {
// KMS will fail if not made via SSL or using SigV4. For information about configuring // KMS will fail if not made via SSL or using SigV4. For information about configuring
// using any of the officially supported AWS SDKs and AWS CLI, see Specifying // using any of the officially supported AWS SDKs and AWS CLI, see Specifying
// the Signature Version in Request Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version) // the Signature Version in Request Authentication (https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
// The server-side encryption algorithm used when storing this object in Amazon // The server-side encryption algorithm used when storing this object in Amazon
@ -13624,7 +13629,7 @@ type CreateMultipartUploadInput struct {
// Depending on performance needs, you can specify a different Storage Class. // Depending on performance needs, you can specify a different Storage Class.
// Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, // Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information,
// see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) // see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html)
// in the Amazon S3 Service Developer Guide. // in the Amazon S3 User Guide.
StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"` StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"`
// The tag-set for the object. The tag-set must be encoded as URL Query parameters. // The tag-set for the object. The tag-set must be encoded as URL Query parameters.
@ -13908,7 +13913,7 @@ type CreateMultipartUploadOutput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// When using this action with Amazon S3 on Outposts, you must direct requests // When using this action with Amazon S3 on Outposts, you must direct requests
@ -15613,7 +15618,7 @@ type DeleteObjectInput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// When using this action with Amazon S3 on Outposts, you must direct requests // When using this action with Amazon S3 on Outposts, you must direct requests
@ -15651,7 +15656,7 @@ type DeleteObjectInput struct {
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from requester pays buckets, see Downloading Objects // about downloading objects from requester pays buckets, see Downloading Objects
// in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
// VersionId used to reference a specific version of the object. // VersionId used to reference a specific version of the object.
@ -15819,7 +15824,7 @@ type DeleteObjectTaggingInput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// When using this action with Amazon S3 on Outposts, you must direct requests // When using this action with Amazon S3 on Outposts, you must direct requests
@ -15970,7 +15975,7 @@ type DeleteObjectsInput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// When using this action with Amazon S3 on Outposts, you must direct requests // When using this action with Amazon S3 on Outposts, you must direct requests
@ -16009,7 +16014,7 @@ type DeleteObjectsInput struct {
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from requester pays buckets, see Downloading Objects // about downloading objects from requester pays buckets, see Downloading Objects
// in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
} }
@ -16333,7 +16338,7 @@ type Destination struct {
// the destination bucket by specifying the AccessControlTranslation property, // the destination bucket by specifying the AccessControlTranslation property,
// this is the account ID of the destination bucket owner. For more information, // this is the account ID of the destination bucket owner. For more information,
// see Replication Additional Configuration: Changing the Replica Owner (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-change-owner.html) // see Replication Additional Configuration: Changing the Replica Owner (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-change-owner.html)
// in the Amazon Simple Storage Service Developer Guide. // in the Amazon S3 User Guide.
Account *string `type:"string"` Account *string `type:"string"`
// The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to // The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to
@ -16361,7 +16366,7 @@ type Destination struct {
// //
// For valid values, see the StorageClass element of the PUT Bucket replication // For valid values, see the StorageClass element of the PUT Bucket replication
// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) // (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html)
// action in the Amazon Simple Storage Service API Reference. // action in the Amazon S3 API Reference.
StorageClass *string `type:"string" enum:"StorageClass"` StorageClass *string `type:"string" enum:"StorageClass"`
} }
@ -16468,8 +16473,8 @@ type Encryption struct {
// If the encryption type is aws:kms, this optional value specifies the ID of // If the encryption type is aws:kms, this optional value specifies the ID of
// the symmetric customer managed AWS KMS CMK to use for encryption of job results. // the symmetric customer managed AWS KMS CMK to use for encryption of job results.
// Amazon S3 only supports symmetric CMKs. For more information, see Using Symmetric // Amazon S3 only supports symmetric CMKs. For more information, see Using symmetric
// and Asymmetric Keys (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) // and asymmetric keys (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)
// in the AWS Key Management Service Developer Guide. // in the AWS Key Management Service Developer Guide.
KMSKeyId *string `type:"string" sensitive:"true"` KMSKeyId *string `type:"string" sensitive:"true"`
} }
@ -16520,11 +16525,11 @@ func (s *Encryption) SetKMSKeyId(v string) *Encryption {
type EncryptionConfiguration struct { type EncryptionConfiguration struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
// Specifies the ID (Key ARN or Alias ARN) of the customer managed customer // Specifies the ID (Key ARN or Alias ARN) of the customer managed AWS KMS key
// master key (CMK) stored in AWS Key Management Service (KMS) for the destination // stored in AWS Key Management Service (KMS) for the destination bucket. Amazon
// bucket. Amazon S3 uses this key to encrypt replica objects. Amazon S3 only // S3 uses this key to encrypt replica objects. Amazon S3 only supports symmetric,
// supports symmetric customer managed CMKs. For more information, see Using // customer managed KMS keys. For more information, see Using symmetric and
// Symmetric and Asymmetric Keys (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) // asymmetric keys (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)
// in the AWS Key Management Service Developer Guide. // in the AWS Key Management Service Developer Guide.
ReplicaKmsKeyID *string `type:"string"` ReplicaKmsKeyID *string `type:"string"`
} }
@ -17035,7 +17040,7 @@ func (s *ErrorDocument) SetKey(v string) *ErrorDocument {
// Optional configuration to replicate existing source bucket objects. For more // Optional configuration to replicate existing source bucket objects. For more
// information, see Replicating Existing Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-what-is-isnot-replicated.html#existing-object-replication) // information, see Replicating Existing Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-what-is-isnot-replicated.html#existing-object-replication)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
type ExistingObjectReplication struct { type ExistingObjectReplication struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
@ -18337,7 +18342,7 @@ type GetBucketLoggingOutput struct {
// Describes where logs are stored and the prefix that Amazon S3 assigns to // Describes where logs are stored and the prefix that Amazon S3 assigns to
// all log object keys for a bucket. For more information, see PUT Bucket logging // all log object keys for a bucket. For more information, see PUT Bucket logging
// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html) // (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html)
// in the Amazon Simple Storage Service API Reference. // in the Amazon S3 API Reference.
LoggingEnabled *LoggingEnabled `type:"structure"` LoggingEnabled *LoggingEnabled `type:"structure"`
} }
@ -19490,7 +19495,7 @@ type GetObjectAclInput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// Bucket is a required field // Bucket is a required field
@ -19510,7 +19515,7 @@ type GetObjectAclInput struct {
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from requester pays buckets, see Downloading Objects // about downloading objects from requester pays buckets, see Downloading Objects
// in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
// VersionId used to reference a specific version of the object. // VersionId used to reference a specific version of the object.
@ -19664,7 +19669,7 @@ type GetObjectInput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// When using this action with Amazon S3 on Outposts, you must direct requests // When using this action with Amazon S3 on Outposts, you must direct requests
@ -19720,7 +19725,7 @@ type GetObjectInput struct {
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from requester pays buckets, see Downloading Objects // about downloading objects from requester pays buckets, see Downloading Objects
// in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
// Sets the Cache-Control header of the response. // Sets the Cache-Control header of the response.
@ -19964,7 +19969,7 @@ type GetObjectLegalHoldInput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// Bucket is a required field // Bucket is a required field
@ -19984,7 +19989,7 @@ type GetObjectLegalHoldInput struct {
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from requester pays buckets, see Downloading Objects // about downloading objects from requester pays buckets, see Downloading Objects
// in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
// The version ID of the object whose Legal Hold status you want to retrieve. // The version ID of the object whose Legal Hold status you want to retrieve.
@ -20119,7 +20124,7 @@ type GetObjectLockConfigurationInput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// Bucket is a required field // Bucket is a required field
@ -20567,7 +20572,7 @@ type GetObjectRetentionInput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// Bucket is a required field // Bucket is a required field
@ -20587,7 +20592,7 @@ type GetObjectRetentionInput struct {
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from requester pays buckets, see Downloading Objects // about downloading objects from requester pays buckets, see Downloading Objects
// in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
// The version ID for the object whose retention settings you want to retrieve. // The version ID for the object whose retention settings you want to retrieve.
@ -20722,7 +20727,7 @@ type GetObjectTaggingInput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// When using this action with Amazon S3 on Outposts, you must direct requests // When using this action with Amazon S3 on Outposts, you must direct requests
@ -20750,7 +20755,7 @@ type GetObjectTaggingInput struct {
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from requester pays buckets, see Downloading Objects // about downloading objects from requester pays buckets, see Downloading Objects
// in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
// The versionId of the object for which to get the tagging information. // The versionId of the object for which to get the tagging information.
@ -20910,7 +20915,7 @@ type GetObjectTorrentInput struct {
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from requester pays buckets, see Downloading Objects // about downloading objects from requester pays buckets, see Downloading Objects
// in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
} }
@ -21342,7 +21347,7 @@ type HeadBucketInput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// When using this action with Amazon S3 on Outposts, you must direct requests // When using this action with Amazon S3 on Outposts, you must direct requests
@ -21457,7 +21462,7 @@ type HeadObjectInput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// When using this action with Amazon S3 on Outposts, you must direct requests // When using this action with Amazon S3 on Outposts, you must direct requests
@ -21514,7 +21519,7 @@ type HeadObjectInput struct {
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from requester pays buckets, see Downloading Objects // about downloading objects from requester pays buckets, see Downloading Objects
// in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
// Specifies the algorithm to use to when encrypting the object (for example, // Specifies the algorithm to use to when encrypting the object (for example,
@ -22417,7 +22422,7 @@ func (s *IntelligentTieringFilter) SetTag(v *Tag) *IntelligentTieringFilter {
// Specifies the inventory configuration for an Amazon S3 bucket. For more information, // Specifies the inventory configuration for an Amazon S3 bucket. For more information,
// see GET Bucket inventory (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) // see GET Bucket inventory (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html)
// in the Amazon Simple Storage Service API Reference. // in the Amazon S3 API Reference.
type InventoryConfiguration struct { type InventoryConfiguration struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
@ -23987,7 +23992,7 @@ type ListMultipartUploadsInput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// When using this action with Amazon S3 on Outposts, you must direct requests // When using this action with Amazon S3 on Outposts, you must direct requests
@ -24627,7 +24632,7 @@ type ListObjectsInput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// When using this action with Amazon S3 on Outposts, you must direct requests // When using this action with Amazon S3 on Outposts, you must direct requests
@ -24921,7 +24926,7 @@ type ListObjectsV2Input struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// When using this action with Amazon S3 on Outposts, you must direct requests // When using this action with Amazon S3 on Outposts, you must direct requests
@ -25157,7 +25162,7 @@ type ListObjectsV2Output struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// When using this action with Amazon S3 on Outposts, you must direct requests // When using this action with Amazon S3 on Outposts, you must direct requests
@ -25273,7 +25278,7 @@ type ListPartsInput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// When using this action with Amazon S3 on Outposts, you must direct requests // When using this action with Amazon S3 on Outposts, you must direct requests
@ -25308,7 +25313,7 @@ type ListPartsInput struct {
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from requester pays buckets, see Downloading Objects // about downloading objects from requester pays buckets, see Downloading Objects
// in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
// Upload ID identifying the multipart upload whose parts are being listed. // Upload ID identifying the multipart upload whose parts are being listed.
@ -25730,7 +25735,7 @@ func (s *Location) SetUserMetadata(v []*MetadataEntry) *Location {
// Describes where logs are stored and the prefix that Amazon S3 assigns to // Describes where logs are stored and the prefix that Amazon S3 assigns to
// all log object keys for a bucket. For more information, see PUT Bucket logging // all log object keys for a bucket. For more information, see PUT Bucket logging
// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html) // (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlogging.html)
// in the Amazon Simple Storage Service API Reference. // in the Amazon S3 API Reference.
type LoggingEnabled struct { type LoggingEnabled struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
@ -25953,7 +25958,7 @@ func (s *MetricsAndOperator) SetTags(v []*Tag) *MetricsAndOperator {
// the existing metrics configuration. If you don't include the elements you // the existing metrics configuration. If you don't include the elements you
// want to keep, they are erased. For more information, see PUT Bucket metrics // want to keep, they are erased. For more information, see PUT Bucket metrics
// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html) // (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html)
// in the Amazon Simple Storage Service API Reference. // in the Amazon S3 API Reference.
type MetricsConfiguration struct { type MetricsConfiguration struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
@ -26155,7 +26160,7 @@ type NoncurrentVersionExpiration struct {
// perform the associated action. For information about the noncurrent days // perform the associated action. For information about the noncurrent days
// calculations, see How Amazon S3 Calculates When an Object Became Noncurrent // calculations, see How Amazon S3 Calculates When an Object Became Noncurrent
// (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) // (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations)
// in the Amazon Simple Storage Service Developer Guide. // in the Amazon S3 User Guide.
NoncurrentDays *int64 `type:"integer"` NoncurrentDays *int64 `type:"integer"`
} }
@ -27336,7 +27341,10 @@ type PutBucketAclInput struct {
// Allows grantee to read the bucket ACL. // Allows grantee to read the bucket ACL.
GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"` GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"`
// Allows grantee to create, overwrite, and delete any object in the bucket. // Allows grantee to create new objects in the bucket.
//
// For the bucket and object owners of existing objects, also allows deletions
// and overwrites of those objects.
GrantWrite *string `location:"header" locationName:"x-amz-grant-write" type:"string"` GrantWrite *string `location:"header" locationName:"x-amz-grant-write" type:"string"`
// Allows grantee to write the ACL for the applicable bucket. // Allows grantee to write the ACL for the applicable bucket.
@ -29693,7 +29701,7 @@ type PutObjectAclInput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// Bucket is a required field // Bucket is a required field
@ -29720,7 +29728,10 @@ type PutObjectAclInput struct {
// This action is not supported by Amazon S3 on Outposts. // This action is not supported by Amazon S3 on Outposts.
GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"` GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"`
// Allows grantee to create, overwrite, and delete any object in the bucket. // Allows grantee to create new objects in the bucket.
//
// For the bucket and object owners of existing objects, also allows deletions
// and overwrites of those objects.
GrantWrite *string `location:"header" locationName:"x-amz-grant-write" type:"string"` GrantWrite *string `location:"header" locationName:"x-amz-grant-write" type:"string"`
// Allows grantee to write the ACL for the applicable bucket. // Allows grantee to write the ACL for the applicable bucket.
@ -29734,7 +29745,7 @@ type PutObjectAclInput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// When using this action with Amazon S3 on Outposts, you must direct requests // When using this action with Amazon S3 on Outposts, you must direct requests
@ -29752,7 +29763,7 @@ type PutObjectAclInput struct {
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from requester pays buckets, see Downloading Objects // about downloading objects from requester pays buckets, see Downloading Objects
// in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
// VersionId used to reference a specific version of the object. // VersionId used to reference a specific version of the object.
@ -29944,7 +29955,7 @@ type PutObjectInput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// When using this action with Amazon S3 on Outposts, you must direct requests // When using this action with Amazon S3 on Outposts, you must direct requests
@ -30046,14 +30057,15 @@ type PutObjectInput struct {
// The Object Lock mode that you want to apply to this object. // The Object Lock mode that you want to apply to this object.
ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"` ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"`
// The date and time when you want this object's Object Lock to expire. // The date and time when you want this object's Object Lock to expire. Must
// be formatted as a timestamp parameter.
ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"` ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"`
// Confirms that the requester knows that they will be charged for the request. // Confirms that the requester knows that they will be charged for the request.
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from requester pays buckets, see Downloading Objects // about downloading objects from requester pays buckets, see Downloading Objects
// in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
// Specifies the algorithm to use to when encrypting the object (for example, // Specifies the algorithm to use to when encrypting the object (for example,
@ -30080,13 +30092,11 @@ type PutObjectInput struct {
// If x-amz-server-side-encryption is present and has the value of aws:kms, // If x-amz-server-side-encryption is present and has the value of aws:kms,
// this header specifies the ID of the AWS Key Management Service (AWS KMS) // this header specifies the ID of the AWS Key Management Service (AWS KMS)
// symmetrical customer managed customer master key (CMK) that was used for // symmetrical customer managed customer master key (CMK) that was used for
// the object.
//
// If the value of x-amz-server-side-encryption is aws:kms, this header specifies
// the ID of the symmetric customer managed AWS KMS CMK that will be used for
// the object. If you specify x-amz-server-side-encryption:aws:kms, but do not // the object. If you specify x-amz-server-side-encryption:aws:kms, but do not
// providex-amz-server-side-encryption-aws-kms-key-id, Amazon S3 uses the AWS // providex-amz-server-side-encryption-aws-kms-key-id, Amazon S3 uses the AWS
// managed CMK in AWS to protect the data. // managed CMK in AWS to protect the data. If the KMS key does not exist in
// the same account issuing the command, you must use the full ARN and not just
// the ID.
SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"` SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
// The server-side encryption algorithm used when storing this object in Amazon // The server-side encryption algorithm used when storing this object in Amazon
@ -30098,7 +30108,7 @@ type PutObjectInput struct {
// Depending on performance needs, you can specify a different Storage Class. // Depending on performance needs, you can specify a different Storage Class.
// Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, // Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information,
// see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html) // see Storage Classes (https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html)
// in the Amazon S3 Service Developer Guide. // in the Amazon S3 User Guide.
StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"` StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"`
// The tag-set for the object. The tag-set must be encoded as URL Query parameters. // The tag-set for the object. The tag-set must be encoded as URL Query parameters.
@ -30401,7 +30411,7 @@ type PutObjectLegalHoldInput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// Bucket is a required field // Bucket is a required field
@ -30425,7 +30435,7 @@ type PutObjectLegalHoldInput struct {
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from requester pays buckets, see Downloading Objects // about downloading objects from requester pays buckets, see Downloading Objects
// in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
// The version ID of the object that you want to place a Legal Hold on. // The version ID of the object that you want to place a Legal Hold on.
@ -30578,7 +30588,7 @@ type PutObjectLockConfigurationInput struct {
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from requester pays buckets, see Downloading Objects // about downloading objects from requester pays buckets, see Downloading Objects
// in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
// A token to allow Object Lock to be enabled for an existing bucket. // A token to allow Object Lock to be enabled for an existing bucket.
@ -30831,7 +30841,7 @@ type PutObjectRetentionInput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// Bucket is a required field // Bucket is a required field
@ -30855,7 +30865,7 @@ type PutObjectRetentionInput struct {
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from requester pays buckets, see Downloading Objects // about downloading objects from requester pays buckets, see Downloading Objects
// in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
// The container element for the Object Retention configuration. // The container element for the Object Retention configuration.
@ -31007,7 +31017,7 @@ type PutObjectTaggingInput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// When using this action with Amazon S3 on Outposts, you must direct requests // When using this action with Amazon S3 on Outposts, you must direct requests
@ -31035,7 +31045,7 @@ type PutObjectTaggingInput struct {
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from requester pays buckets, see Downloading Objects // about downloading objects from requester pays buckets, see Downloading Objects
// in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
// Container for the TagSet and Tag elements // Container for the TagSet and Tag elements
@ -31752,7 +31762,7 @@ type ReplicationRule struct {
// Optional configuration to replicate existing source bucket objects. For more // Optional configuration to replicate existing source bucket objects. For more
// information, see Replicating Existing Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-what-is-isnot-replicated.html#existing-object-replication) // information, see Replicating Existing Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-what-is-isnot-replicated.html#existing-object-replication)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
ExistingObjectReplication *ExistingObjectReplication `type:"structure"` ExistingObjectReplication *ExistingObjectReplication `type:"structure"`
// A filter that identifies the subset of objects to which the replication rule // A filter that identifies the subset of objects to which the replication rule
@ -32195,7 +32205,7 @@ type RestoreObjectInput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// When using this action with Amazon S3 on Outposts, you must direct requests // When using this action with Amazon S3 on Outposts, you must direct requests
@ -32223,7 +32233,7 @@ type RestoreObjectInput struct {
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from requester pays buckets, see Downloading Objects // about downloading objects from requester pays buckets, see Downloading Objects
// in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
// Container for restore job parameters. // Container for restore job parameters.
@ -32540,8 +32550,8 @@ func (s *RoutingRule) SetRedirect(v *Redirect) *RoutingRule {
// Specifies lifecycle rules for an Amazon S3 bucket. For more information, // Specifies lifecycle rules for an Amazon S3 bucket. For more information,
// see Put Bucket Lifecycle Configuration (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html) // see Put Bucket Lifecycle Configuration (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html)
// in the Amazon Simple Storage Service API Reference. For examples, see Put // in the Amazon S3 API Reference. For examples, see Put Bucket Lifecycle Configuration
// Bucket Lifecycle Configuration Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html#API_PutBucketLifecycleConfiguration_Examples). // Examples (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html#API_PutBucketLifecycleConfiguration_Examples).
type Rule struct { type Rule struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
@ -33287,17 +33297,17 @@ func (s *SelectParameters) SetOutputSerialization(v *OutputSerialization) *Selec
// bucket. If a PUT Object request doesn't specify any server-side encryption, // bucket. If a PUT Object request doesn't specify any server-side encryption,
// this default encryption will be applied. For more information, see PUT Bucket // this default encryption will be applied. For more information, see PUT Bucket
// encryption (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html) // encryption (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html)
// in the Amazon Simple Storage Service API Reference. // in the Amazon S3 API Reference.
type ServerSideEncryptionByDefault struct { type ServerSideEncryptionByDefault struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
// AWS Key Management Service (KMS) customer master key ID to use for the default // AWS Key Management Service (KMS) customer AWS KMS key ID to use for the default
// encryption. This parameter is allowed if and only if SSEAlgorithm is set // encryption. This parameter is allowed if and only if SSEAlgorithm is set
// to aws:kms. // to aws:kms.
// //
// You can specify the key ID or the Amazon Resource Name (ARN) of the CMK. // You can specify the key ID or the Amazon Resource Name (ARN) of the KMS key.
// However, if you are using encryption with cross-account operations, you must // However, if you are using encryption with cross-account operations, you must
// use a fully qualified CMK ARN. For more information, see Using encryption // use a fully qualified KMS key ARN. For more information, see Using encryption
// for cross-account operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy). // for cross-account operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy).
// //
// For example: // For example:
@ -33306,8 +33316,8 @@ type ServerSideEncryptionByDefault struct {
// //
// * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab // * Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
// //
// Amazon S3 only supports symmetric CMKs and not asymmetric CMKs. For more // Amazon S3 only supports symmetric KMS keys and not asymmetric KMS keys. For
// information, see Using Symmetric and Asymmetric Keys (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) // more information, see Using symmetric and asymmetric keys (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)
// in the AWS Key Management Service Developer Guide. // in the AWS Key Management Service Developer Guide.
KMSMasterKeyID *string `type:"string" sensitive:"true"` KMSMasterKeyID *string `type:"string" sensitive:"true"`
@ -33531,7 +33541,7 @@ type SseKmsEncryptedObjects struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
// Specifies whether Amazon S3 replicates objects created with server-side encryption // Specifies whether Amazon S3 replicates objects created with server-side encryption
// using a customer master key (CMK) stored in AWS Key Management Service. // using an AWS KMS key stored in AWS Key Management Service.
// //
// Status is a required field // Status is a required field
Status *string `type:"string" required:"true" enum:"SseKmsEncryptedObjectsStatus"` Status *string `type:"string" required:"true" enum:"SseKmsEncryptedObjectsStatus"`
@ -34170,7 +34180,7 @@ type UploadPartCopyInput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// When using this action with Amazon S3 on Outposts, you must direct requests // When using this action with Amazon S3 on Outposts, you must direct requests
@ -34275,7 +34285,7 @@ type UploadPartCopyInput struct {
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from requester pays buckets, see Downloading Objects // about downloading objects from requester pays buckets, see Downloading Objects
// in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
// Specifies the algorithm to use to when encrypting the object (for example, // Specifies the algorithm to use to when encrypting the object (for example,
@ -34612,7 +34622,7 @@ type UploadPartInput struct {
// the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. // the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
// When using this action with an access point through the AWS SDKs, you provide // When using this action with an access point through the AWS SDKs, you provide
// the access point ARN in place of the bucket name. For more information about // the access point ARN in place of the bucket name. For more information about
// access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html) // access point ARNs, see Using access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html)
// in the Amazon S3 User Guide. // in the Amazon S3 User Guide.
// //
// When using this action with Amazon S3 on Outposts, you must direct requests // When using this action with Amazon S3 on Outposts, you must direct requests
@ -34655,7 +34665,7 @@ type UploadPartInput struct {
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from requester pays buckets, see Downloading Objects // about downloading objects from requester pays buckets, see Downloading Objects
// in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"` RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
// Specifies the algorithm to use to when encrypting the object (for example, // Specifies the algorithm to use to when encrypting the object (for example,
@ -34919,7 +34929,7 @@ func (s *UploadPartOutput) SetServerSideEncryption(v string) *UploadPartOutput {
// Describes the versioning state of an Amazon S3 bucket. For more information, // Describes the versioning state of an Amazon S3 bucket. For more information,
// see PUT Bucket versioning (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html) // see PUT Bucket versioning (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTVersioningStatus.html)
// in the Amazon Simple Storage Service API Reference. // in the Amazon S3 API Reference.
type VersioningConfiguration struct { type VersioningConfiguration struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
@ -36028,6 +36038,9 @@ const (
// InventoryOptionalFieldIntelligentTieringAccessTier is a InventoryOptionalField enum value // InventoryOptionalFieldIntelligentTieringAccessTier is a InventoryOptionalField enum value
InventoryOptionalFieldIntelligentTieringAccessTier = "IntelligentTieringAccessTier" InventoryOptionalFieldIntelligentTieringAccessTier = "IntelligentTieringAccessTier"
// InventoryOptionalFieldBucketKeyStatus is a InventoryOptionalField enum value
InventoryOptionalFieldBucketKeyStatus = "BucketKeyStatus"
) )
// InventoryOptionalField_Values returns all elements of the InventoryOptionalField enum // InventoryOptionalField_Values returns all elements of the InventoryOptionalField enum
@ -36044,6 +36057,7 @@ func InventoryOptionalField_Values() []string {
InventoryOptionalFieldObjectLockMode, InventoryOptionalFieldObjectLockMode,
InventoryOptionalFieldObjectLockLegalHoldStatus, InventoryOptionalFieldObjectLockLegalHoldStatus,
InventoryOptionalFieldIntelligentTieringAccessTier, InventoryOptionalFieldIntelligentTieringAccessTier,
InventoryOptionalFieldBucketKeyStatus,
} }
} }
@ -36477,7 +36491,7 @@ func RequestCharged_Values() []string {
// Bucket owners need not specify this parameter in their requests. For information // Bucket owners need not specify this parameter in their requests. For information
// about downloading objects from requester pays buckets, see Downloading Objects // about downloading objects from requester pays buckets, see Downloading Objects
// in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html) // in Requestor Pays Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html)
// in the Amazon S3 Developer Guide. // in the Amazon S3 User Guide.
const ( const (
// RequestPayerRequester is a RequestPayer enum value // RequestPayerRequester is a RequestPayer enum value
RequestPayerRequester = "requester" RequestPayerRequester = "requester"

View File

@ -155,8 +155,9 @@ func endpointHandler(req *request.Request) {
} }
case arn.OutpostAccessPointARN: case arn.OutpostAccessPointARN:
// outposts does not support FIPS regions // outposts does not support FIPS regions
if resReq.ResourceConfiguredForFIPS() { if resReq.UseFIPS() {
req.Error = s3shared.NewInvalidARNWithFIPSError(resource, nil) req.Error = s3shared.NewFIPSConfigurationError(resource, req.ClientInfo.PartitionID,
aws.StringValue(req.Config.Region), nil)
return return
} }

View File

@ -64,12 +64,12 @@ func (c *SQS) AddPermissionRequest(input *AddPermissionInput) (req *request.Requ
// Only you, the owner of the queue, can grant or deny permissions to the queue. // Only you, the owner of the queue, can grant or deny permissions to the queue.
// For more information about these permissions, see Allow Developers to Write // For more information about these permissions, see Allow Developers to Write
// Messages to a Shared Queue (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-writing-an-sqs-policy.html#write-messages-to-shared-queue) // Messages to a Shared Queue (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-writing-an-sqs-policy.html#write-messages-to-shared-queue)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// * AddPermission generates a policy for you. You can use SetQueueAttributes // * AddPermission generates a policy for you. You can use SetQueueAttributes
// to upload your policy. For more information, see Using Custom Policies // to upload your policy. For more information, see Using Custom Policies
// with the Amazon SQS Access Policy Language (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-creating-custom-policies.html) // with the Amazon SQS Access Policy Language (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-creating-custom-policies.html)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// * An Amazon SQS policy can have a maximum of 7 actions. // * An Amazon SQS policy can have a maximum of 7 actions.
// //
@ -87,7 +87,7 @@ func (c *SQS) AddPermissionRequest(input *AddPermissionInput) (req *request.Requ
// //
// Cross-account permissions don't apply to this action. For more information, // Cross-account permissions don't apply to this action. For more information,
// see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name) // see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about // with awserr.Error's Code and Message methods to get detailed information about
@ -174,7 +174,7 @@ func (c *SQS) ChangeMessageVisibilityRequest(input *ChangeMessageVisibilityInput
// value. The default visibility timeout for a message is 30 seconds. The minimum // value. The default visibility timeout for a message is 30 seconds. The minimum
// is 0 seconds. The maximum is 12 hours. For more information, see Visibility // is 0 seconds. The maximum is 12 hours. For more information, see Visibility
// Timeout (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html) // Timeout (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// For example, you have a message with a visibility timeout of 5 minutes. After // For example, you have a message with a visibility timeout of 5 minutes. After
// 3 minutes, you call ChangeMessageVisibility with a timeout of 10 minutes. // 3 minutes, you call ChangeMessageVisibility with a timeout of 10 minutes.
@ -415,7 +415,7 @@ func (c *SQS) CreateQueueRequest(input *CreateQueueInput) (req *request.Request,
// create a new FIFO queue for your application or delete your existing standard // create a new FIFO queue for your application or delete your existing standard
// queue and recreate it as a FIFO queue. For more information, see Moving // queue and recreate it as a FIFO queue. For more information, see Moving
// From a Standard Queue to a FIFO Queue (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-moving) // From a Standard Queue to a FIFO Queue (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-moving)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// * If you don't provide a value for an attribute, the queue is created // * If you don't provide a value for an attribute, the queue is created
// with the default value for the attribute. // with the default value for the attribute.
@ -450,7 +450,7 @@ func (c *SQS) CreateQueueRequest(input *CreateQueueInput) (req *request.Request,
// //
// Cross-account permissions don't apply to this action. For more information, // Cross-account permissions don't apply to this action. For more information,
// see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name) // see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about // with awserr.Error's Code and Message methods to get detailed information about
@ -755,7 +755,7 @@ func (c *SQS) DeleteQueueRequest(input *DeleteQueueInput) (req *request.Request,
// //
// Cross-account permissions don't apply to this action. For more information, // Cross-account permissions don't apply to this action. For more information,
// see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name) // see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about // with awserr.Error's Code and Message methods to get detailed information about
@ -918,7 +918,7 @@ func (c *SQS) GetQueueUrlRequest(input *GetQueueUrlInput) (req *request.Request,
// must grant you permission to access the queue. For more information about // must grant you permission to access the queue. For more information about
// shared queue access, see AddPermission or see Allow Developers to Write Messages // shared queue access, see AddPermission or see Allow Developers to Write Messages
// to a Shared Queue (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-writing-an-sqs-policy.html#write-messages-to-shared-queue) // to a Shared Queue (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-writing-an-sqs-policy.html#write-messages-to-shared-queue)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about // with awserr.Error's Code and Message methods to get detailed information about
@ -1016,7 +1016,7 @@ func (c *SQS) ListDeadLetterSourceQueuesRequest(input *ListDeadLetterSourceQueue
// //
// For more information about using dead-letter queues, see Using Amazon SQS // For more information about using dead-letter queues, see Using Amazon SQS
// Dead-Letter Queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) // Dead-Letter Queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about // with awserr.Error's Code and Message methods to get detailed information about
@ -1149,11 +1149,11 @@ func (c *SQS) ListQueueTagsRequest(input *ListQueueTagsInput) (req *request.Requ
// //
// List all cost allocation tags added to the specified Amazon SQS queue. For // List all cost allocation tags added to the specified Amazon SQS queue. For
// an overview, see Tagging Your Amazon SQS Queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-tags.html) // an overview, see Tagging Your Amazon SQS Queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-tags.html)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// Cross-account permissions don't apply to this action. For more information, // Cross-account permissions don't apply to this action. For more information,
// see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name) // see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about // with awserr.Error's Code and Message methods to get detailed information about
@ -1247,7 +1247,7 @@ func (c *SQS) ListQueuesRequest(input *ListQueuesInput) (req *request.Request, o
// //
// Cross-account permissions don't apply to this action. For more information, // Cross-account permissions don't apply to this action. For more information,
// see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name) // see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about // with awserr.Error's Code and Message methods to get detailed information about
@ -1473,7 +1473,7 @@ func (c *SQS) ReceiveMessageRequest(input *ReceiveMessageInput) (req *request.Re
// Retrieves one or more messages (up to 10), from the specified queue. Using // Retrieves one or more messages (up to 10), from the specified queue. Using
// the WaitTimeSeconds parameter enables long-poll support. For more information, // the WaitTimeSeconds parameter enables long-poll support. For more information,
// see Amazon SQS Long Polling (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-long-polling.html) // see Amazon SQS Long Polling (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-long-polling.html)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// Short poll is the default behavior where a weighted random set of machines // Short poll is the default behavior where a weighted random set of machines
// is sampled on a ReceiveMessage call. Thus, only the messages on the sampled // is sampled on a ReceiveMessage call. Thus, only the messages on the sampled
@ -1500,14 +1500,14 @@ func (c *SQS) ReceiveMessageRequest(input *ReceiveMessageInput) (req *request.Re
// //
// The receipt handle is the identifier you must provide when deleting the message. // The receipt handle is the identifier you must provide when deleting the message.
// For more information, see Queue and Message Identifiers (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-message-identifiers.html) // For more information, see Queue and Message Identifiers (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-message-identifiers.html)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// You can provide the VisibilityTimeout parameter in your request. The parameter // You can provide the VisibilityTimeout parameter in your request. The parameter
// is applied to the messages that Amazon SQS returns in the response. If you // is applied to the messages that Amazon SQS returns in the response. If you
// don't include the parameter, the overall visibility timeout for the queue // don't include the parameter, the overall visibility timeout for the queue
// is used for the returned messages. For more information, see Visibility Timeout // is used for the returned messages. For more information, see Visibility Timeout
// (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html) // (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// A message that isn't deleted or a message whose visibility isn't extended // A message that isn't deleted or a message whose visibility isn't extended
// before the visibility timeout expires counts as a failed receive. Depending // before the visibility timeout expires counts as a failed receive. Depending
@ -1606,7 +1606,7 @@ func (c *SQS) RemovePermissionRequest(input *RemovePermissionInput) (req *reques
// //
// * Cross-account permissions don't apply to this action. For more information, // * Cross-account permissions don't apply to this action. For more information,
// see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name) // see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// * To remove the ability to change queue permissions, you must deny permission // * To remove the ability to change queue permissions, you must deny permission
// to the AddPermission, RemovePermission, and SetQueueAttributes actions // to the AddPermission, RemovePermission, and SetQueueAttributes actions
@ -1910,7 +1910,7 @@ func (c *SQS) SetQueueAttributesRequest(input *SetQueueAttributesInput) (req *re
// //
// * Cross-account permissions don't apply to this action. For more information, // * Cross-account permissions don't apply to this action. For more information,
// see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name) // see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// * To remove the ability to change queue permissions, you must deny permission // * To remove the ability to change queue permissions, you must deny permission
// to the AddPermission, RemovePermission, and SetQueueAttributes actions // to the AddPermission, RemovePermission, and SetQueueAttributes actions
@ -1996,7 +1996,7 @@ func (c *SQS) TagQueueRequest(input *TagQueueInput) (req *request.Request, outpu
// //
// Add cost allocation tags to the specified Amazon SQS queue. For an overview, // Add cost allocation tags to the specified Amazon SQS queue. For an overview,
// see Tagging Your Amazon SQS Queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-tags.html) // see Tagging Your Amazon SQS Queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-tags.html)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// When you use queue tags, keep the following guidelines in mind: // When you use queue tags, keep the following guidelines in mind:
// //
@ -2010,12 +2010,12 @@ func (c *SQS) TagQueueRequest(input *TagQueueInput) (req *request.Request, outpu
// * A new tag with a key identical to that of an existing tag overwrites // * A new tag with a key identical to that of an existing tag overwrites
// the existing tag. // the existing tag.
// //
// For a full list of tag restrictions, see Limits Related to Queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-limits.html#limits-queues) // For a full list of tag restrictions, see Quotas related to queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-limits.html#limits-queues)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// Cross-account permissions don't apply to this action. For more information, // Cross-account permissions don't apply to this action. For more information,
// see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name) // see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about // with awserr.Error's Code and Message methods to get detailed information about
@ -2092,11 +2092,11 @@ func (c *SQS) UntagQueueRequest(input *UntagQueueInput) (req *request.Request, o
// //
// Remove cost allocation tags from the specified Amazon SQS queue. For an overview, // Remove cost allocation tags from the specified Amazon SQS queue. For an overview,
// see Tagging Your Amazon SQS Queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-tags.html) // see Tagging Your Amazon SQS Queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-tags.html)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// Cross-account permissions don't apply to this action. For more information, // Cross-account permissions don't apply to this action. For more information,
// see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name) // see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about // with awserr.Error's Code and Message methods to get detailed information about
@ -2129,11 +2129,10 @@ func (c *SQS) UntagQueueWithContext(ctx aws.Context, input *UntagQueueInput, opt
type AddPermissionInput struct { type AddPermissionInput struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
// The AWS account number of the principal (https://docs.aws.amazon.com/general/latest/gr/glos-chap.html#P) // The account numbers of the principals (https://docs.aws.amazon.com/general/latest/gr/glos-chap.html#P)
// who is given permission. The principal must have an AWS account, but does // who are to receive permission. For information about locating the account
// not need to be signed up for Amazon SQS. For information about locating the // identification, see Your Amazon Web Services Identifiers (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-making-api-requests.html#sqs-api-request-authentication)
// AWS account identification, see Your AWS Identifiers (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-making-api-requests.html#sqs-api-request-authentication) // in the Amazon SQS Developer Guide.
// in the Amazon Simple Queue Service Developer Guide.
// //
// AWSAccountIds is a required field // AWSAccountIds is a required field
AWSAccountIds []*string `locationNameList:"AWSAccountId" type:"list" flattened:"true" required:"true"` AWSAccountIds []*string `locationNameList:"AWSAccountId" type:"list" flattened:"true" required:"true"`
@ -2143,7 +2142,7 @@ type AddPermissionInput struct {
// //
// For more information about these actions, see Overview of Managing Access // For more information about these actions, see Overview of Managing Access
// Permissions to Your Amazon Simple Queue Service Resource (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-overview-of-managing-access.html) // Permissions to Your Amazon Simple Queue Service Resource (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-overview-of-managing-access.html)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// Specifying SendMessage, DeleteMessage, or ChangeMessageVisibility for ActionName.n // Specifying SendMessage, DeleteMessage, or ChangeMessageVisibility for ActionName.n
// also grants permissions for the corresponding batch versions of those actions: // also grants permissions for the corresponding batch versions of those actions:
@ -2607,8 +2606,9 @@ type CreateQueueInput struct {
// Amazon SQS retains a message. Valid values: An integer from 60 seconds // Amazon SQS retains a message. Valid values: An integer from 60 seconds
// (1 minute) to 1,209,600 seconds (14 days). Default: 345,600 (4 days). // (1 minute) to 1,209,600 seconds (14 days). Default: 345,600 (4 days).
// //
// * Policy The queue's policy. A valid AWS policy. For more information // * Policy The queue's policy. A valid Amazon Web Services policy. For
// about policy structure, see Overview of AWS IAM Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html) // more information about policy structure, see Overview of Amazon Web Services
// IAM Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html)
// in the Amazon IAM User Guide. // in the Amazon IAM User Guide.
// //
// * ReceiveMessageWaitTimeSeconds The length of time, in seconds, for // * ReceiveMessageWaitTimeSeconds The length of time, in seconds, for
@ -2619,9 +2619,9 @@ type CreateQueueInput struct {
// queue functionality of the source queue as a JSON object. For more information // queue functionality of the source queue as a JSON object. For more information
// about the redrive policy and dead-letter queues, see Using Amazon SQS // about the redrive policy and dead-letter queues, see Using Amazon SQS
// Dead-Letter Queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) // Dead-Letter Queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html)
// in the Amazon Simple Queue Service Developer Guide. deadLetterTargetArn // in the Amazon SQS Developer Guide. deadLetterTargetArn The Amazon
// The Amazon Resource Name (ARN) of the dead-letter queue to which Amazon // Resource Name (ARN) of the dead-letter queue to which Amazon SQS moves
// SQS moves messages after the value of maxReceiveCount is exceeded. maxReceiveCount // messages after the value of maxReceiveCount is exceeded. maxReceiveCount
// The number of times a message is delivered to the source queue before // The number of times a message is delivered to the source queue before
// being moved to the dead-letter queue. When the ReceiveCount for a message // being moved to the dead-letter queue. When the ReceiveCount for a message
// exceeds the maxReceiveCount for a queue, Amazon SQS moves the message // exceeds the maxReceiveCount for a queue, Amazon SQS moves the message
@ -2633,25 +2633,26 @@ type CreateQueueInput struct {
// Valid values: An integer from 0 to 43,200 (12 hours). Default: 30. For // Valid values: An integer from 0 to 43,200 (12 hours). Default: 30. For
// more information about the visibility timeout, see Visibility Timeout // more information about the visibility timeout, see Visibility Timeout
// (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html) // (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// The following attributes apply only to server-side-encryption (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html): // The following attributes apply only to server-side-encryption (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html):
// //
// * KmsMasterKeyId The ID of an AWS-managed customer master key (CMK) // * KmsMasterKeyId The ID of an Amazon Web Services managed customer
// for Amazon SQS or a custom CMK. For more information, see Key Terms (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-sse-key-terms). // master key (CMK) for Amazon SQS or a custom CMK. For more information,
// While the alias of the AWS-managed CMK for Amazon SQS is always alias/aws/sqs, // see Key Terms (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-sse-key-terms).
// the alias of a custom CMK can, for example, be alias/MyAlias . For more // While the alias of the Amazon Web Services managed CMK for Amazon SQS
// examples, see KeyId (https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters) // is always alias/aws/sqs, the alias of a custom CMK can, for example, be
// in the AWS Key Management Service API Reference. // alias/MyAlias . For more examples, see KeyId (https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters)
// in the Key Management Service API Reference.
// //
// * KmsDataKeyReusePeriodSeconds The length of time, in seconds, for // * KmsDataKeyReusePeriodSeconds The length of time, in seconds, for
// which Amazon SQS can reuse a data key (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys) // which Amazon SQS can reuse a data key (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys)
// to encrypt or decrypt messages before calling AWS KMS again. An integer // to encrypt or decrypt messages before calling KMS again. An integer representing
// representing seconds, between 60 seconds (1 minute) and 86,400 seconds // seconds, between 60 seconds (1 minute) and 86,400 seconds (24 hours).
// (24 hours). Default: 300 (5 minutes). A shorter time period provides better // Default: 300 (5 minutes). A shorter time period provides better security
// security but results in more calls to KMS which might incur charges after // but results in more calls to KMS which might incur charges after Free
// Free Tier. For more information, see How Does the Data Key Reuse Period // Tier. For more information, see How Does the Data Key Reuse Period Work?
// Work? (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-how-does-the-data-key-reuse-period-work). // (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-how-does-the-data-key-reuse-period-work).
// //
// The following attributes apply only to FIFO (first-in-first-out) queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html): // The following attributes apply only to FIFO (first-in-first-out) queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html):
// //
@ -2660,17 +2661,17 @@ type CreateQueueInput struct {
// a standard queue. You can provide this attribute only during queue creation. // a standard queue. You can provide this attribute only during queue creation.
// You can't change it for an existing queue. When you set this attribute, // You can't change it for an existing queue. When you set this attribute,
// you must also provide the MessageGroupId for your messages explicitly. // you must also provide the MessageGroupId for your messages explicitly.
// For more information, see FIFO Queue Logic (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-understanding-logic) // For more information, see FIFO queue logic (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-understanding-logic.html)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// * ContentBasedDeduplication Enables content-based deduplication. Valid // * ContentBasedDeduplication Enables content-based deduplication. Valid
// values are true and false. For more information, see Exactly-Once Processing // values are true and false. For more information, see Exactly-once processing
// (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing) // (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-exactly-once-processing.html)
// in the Amazon Simple Queue Service Developer Guide. Note the following: // in the Amazon SQS Developer Guide. Note the following: Every message must
// Every message must have a unique MessageDeduplicationId. You may provide // have a unique MessageDeduplicationId. You may provide a MessageDeduplicationId
// a MessageDeduplicationId explicitly. If you aren't able to provide a MessageDeduplicationId // explicitly. If you aren't able to provide a MessageDeduplicationId and
// and you enable ContentBasedDeduplication for your queue, Amazon SQS uses // you enable ContentBasedDeduplication for your queue, Amazon SQS uses a
// a SHA-256 hash to generate the MessageDeduplicationId using the body of // SHA-256 hash to generate the MessageDeduplicationId using the body of
// the message (but not the attributes of the message). If you don't provide // the message (but not the attributes of the message). If you don't provide
// a MessageDeduplicationId and the queue doesn't have ContentBasedDeduplication // a MessageDeduplicationId and the queue doesn't have ContentBasedDeduplication
// set, the action fails with an error. If the queue has ContentBasedDeduplication // set, the action fails with an error. If the queue has ContentBasedDeduplication
@ -2682,15 +2683,7 @@ type CreateQueueInput struct {
// as the one generated for the first MessageDeduplicationId, the two messages // as the one generated for the first MessageDeduplicationId, the two messages
// are treated as duplicates and only one copy of the message is delivered. // are treated as duplicates and only one copy of the message is delivered.
// //
// Preview: High throughput for FIFO queues // The following attributes apply only to high throughput for FIFO queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html):
//
// High throughput for Amazon SQS FIFO queues is in preview release and is subject
// to change. This feature provides a high number of transactions per second
// (TPS) for messages in FIFO queues. For information on throughput quotas,
// see Quotas related to messages (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-messages.html)
// in the Amazon Simple Queue Service Developer Guide.
//
// This preview includes two new attributes:
// //
// * DeduplicationScope Specifies whether message deduplication occurs // * DeduplicationScope Specifies whether message deduplication occurs
// at the message group or queue level. Valid values are messageGroup and // at the message group or queue level. Valid values are messageGroup and
@ -2708,22 +2701,11 @@ type CreateQueueInput struct {
// * Set FifoThroughputLimit to perMessageGroupId. // * Set FifoThroughputLimit to perMessageGroupId.
// //
// If you set these attributes to anything other than the values shown for enabling // If you set these attributes to anything other than the values shown for enabling
// high throughput, standard throughput is in effect and deduplication occurs // high throughput, normal throughput is in effect and deduplication occurs
// as specified. // as specified.
// //
// This preview is available in the following AWS Regions: // For information on throughput quotas, see Quotas related to messages (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-messages.html)
// // in the Amazon SQS Developer Guide.
// * US East (Ohio); us-east-2
//
// * US East (N. Virginia); us-east-1
//
// * US West (Oregon); us-west-2
//
// * Europe (Ireland); eu-west-1
//
// For more information about high throughput for FIFO queues, see Preview:
// High throughput for FIFO queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html)
// in the Amazon Simple Queue Service Developer Guide.
Attributes map[string]*string `locationName:"Attribute" locationNameKey:"Name" locationNameValue:"Value" type:"map" flattened:"true"` Attributes map[string]*string `locationName:"Attribute" locationNameKey:"Name" locationNameValue:"Value" type:"map" flattened:"true"`
// The name of the new queue. The following limits apply to this name: // The name of the new queue. The following limits apply to this name:
@ -2742,7 +2724,7 @@ type CreateQueueInput struct {
// Add cost allocation tags to the specified Amazon SQS queue. For an overview, // Add cost allocation tags to the specified Amazon SQS queue. For an overview,
// see Tagging Your Amazon SQS Queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-tags.html) // see Tagging Your Amazon SQS Queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-tags.html)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// When you use queue tags, keep the following guidelines in mind: // When you use queue tags, keep the following guidelines in mind:
// //
@ -2756,15 +2738,15 @@ type CreateQueueInput struct {
// * A new tag with a key identical to that of an existing tag overwrites // * A new tag with a key identical to that of an existing tag overwrites
// the existing tag. // the existing tag.
// //
// For a full list of tag restrictions, see Limits Related to Queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-limits.html#limits-queues) // For a full list of tag restrictions, see Quotas related to queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-limits.html#limits-queues)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// To be able to tag a queue on creation, you must have the sqs:CreateQueue // To be able to tag a queue on creation, you must have the sqs:CreateQueue
// and sqs:TagQueue permissions. // and sqs:TagQueue permissions.
// //
// Cross-account permissions don't apply to this action. For more information, // Cross-account permissions don't apply to this action. For more information,
// see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name) // see Grant cross-account permissions to a role and a user name (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
Tags map[string]*string `locationName:"Tag" locationNameKey:"Key" locationNameValue:"Value" type:"map" flattened:"true"` Tags map[string]*string `locationName:"Tag" locationNameKey:"Key" locationNameValue:"Value" type:"map" flattened:"true"`
} }
@ -3148,6 +3130,9 @@ type GetQueueAttributesInput struct {
// A list of attributes for which to retrieve information. // A list of attributes for which to retrieve information.
// //
// The AttributeName.N parameter is optional, but if you don't specify values
// for this parameter, the request returns empty results.
//
// In the future, new attributes might be added. If you write code that calls // In the future, new attributes might be added. If you write code that calls
// this action, we recommend that you structure your code so that it can handle // this action, we recommend that you structure your code so that it can handle
// new attributes gracefully. // new attributes gracefully.
@ -3199,9 +3184,9 @@ type GetQueueAttributesInput struct {
// queue functionality of the source queue as a JSON object. For more information // queue functionality of the source queue as a JSON object. For more information
// about the redrive policy and dead-letter queues, see Using Amazon SQS // about the redrive policy and dead-letter queues, see Using Amazon SQS
// Dead-Letter Queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) // Dead-Letter Queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html)
// in the Amazon Simple Queue Service Developer Guide. deadLetterTargetArn // in the Amazon SQS Developer Guide. deadLetterTargetArn The Amazon
// The Amazon Resource Name (ARN) of the dead-letter queue to which Amazon // Resource Name (ARN) of the dead-letter queue to which Amazon SQS moves
// SQS moves messages after the value of maxReceiveCount is exceeded. maxReceiveCount // messages after the value of maxReceiveCount is exceeded. maxReceiveCount
// The number of times a message is delivered to the source queue before // The number of times a message is delivered to the source queue before
// being moved to the dead-letter queue. When the ReceiveCount for a message // being moved to the dead-letter queue. When the ReceiveCount for a message
// exceeds the maxReceiveCount for a queue, Amazon SQS moves the message // exceeds the maxReceiveCount for a queue, Amazon SQS moves the message
@ -3210,41 +3195,33 @@ type GetQueueAttributesInput struct {
// * VisibilityTimeout Returns the visibility timeout for the queue. // * VisibilityTimeout Returns the visibility timeout for the queue.
// For more information about the visibility timeout, see Visibility Timeout // For more information about the visibility timeout, see Visibility Timeout
// (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html) // (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// The following attributes apply only to server-side-encryption (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html): // The following attributes apply only to server-side-encryption (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html):
// //
// * KmsMasterKeyId Returns the ID of an AWS-managed customer master // * KmsMasterKeyId Returns the ID of an Amazon Web Services managed
// key (CMK) for Amazon SQS or a custom CMK. For more information, see Key // customer master key (CMK) for Amazon SQS or a custom CMK. For more information,
// Terms (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-sse-key-terms). // see Key Terms (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-sse-key-terms).
// //
// * KmsDataKeyReusePeriodSeconds Returns the length of time, in seconds, // * KmsDataKeyReusePeriodSeconds Returns the length of time, in seconds,
// for which Amazon SQS can reuse a data key to encrypt or decrypt messages // for which Amazon SQS can reuse a data key to encrypt or decrypt messages
// before calling AWS KMS again. For more information, see How Does the Data // before calling KMS again. For more information, see How Does the Data
// Key Reuse Period Work? (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-how-does-the-data-key-reuse-period-work). // Key Reuse Period Work? (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-how-does-the-data-key-reuse-period-work).
// //
// The following attributes apply only to FIFO (first-in-first-out) queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html): // The following attributes apply only to FIFO (first-in-first-out) queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html):
// //
// * FifoQueue Returns information about whether the queue is FIFO. For // * FifoQueue Returns information about whether the queue is FIFO. For
// more information, see FIFO Queue Logic (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-understanding-logic) // more information, see FIFO queue logic (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-understanding-logic.html)
// in the Amazon Simple Queue Service Developer Guide. To determine whether // in the Amazon SQS Developer Guide. To determine whether a queue is FIFO
// a queue is FIFO (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html), // (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html),
// you can check whether QueueName ends with the .fifo suffix. // you can check whether QueueName ends with the .fifo suffix.
// //
// * ContentBasedDeduplication Returns whether content-based deduplication // * ContentBasedDeduplication Returns whether content-based deduplication
// is enabled for the queue. For more information, see Exactly-Once Processing // is enabled for the queue. For more information, see Exactly-once processing
// (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing) // (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-exactly-once-processing.html)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// Preview: High throughput for FIFO queues // The following attributes apply only to high throughput for FIFO queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html):
//
// High throughput for Amazon SQS FIFO queues is in preview release and is subject
// to change. This feature provides a high number of transactions per second
// (TPS) for messages in FIFO queues. For information on throughput quotas,
// see Quotas related to messages (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-messages.html)
// in the Amazon Simple Queue Service Developer Guide.
//
// This preview includes two new attributes:
// //
// * DeduplicationScope Specifies whether message deduplication occurs // * DeduplicationScope Specifies whether message deduplication occurs
// at the message group or queue level. Valid values are messageGroup and // at the message group or queue level. Valid values are messageGroup and
@ -3262,22 +3239,11 @@ type GetQueueAttributesInput struct {
// * Set FifoThroughputLimit to perMessageGroupId. // * Set FifoThroughputLimit to perMessageGroupId.
// //
// If you set these attributes to anything other than the values shown for enabling // If you set these attributes to anything other than the values shown for enabling
// high throughput, standard throughput is in effect and deduplication occurs // high throughput, normal throughput is in effect and deduplication occurs
// as specified. // as specified.
// //
// This preview is available in the following AWS Regions: // For information on throughput quotas, see Quotas related to messages (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-messages.html)
// // in the Amazon SQS Developer Guide.
// * US East (Ohio); us-east-2
//
// * US East (N. Virginia); us-east-1
//
// * US West (Oregon); us-west-2
//
// * Europe (Ireland); eu-west-1
//
// For more information about high throughput for FIFO queues, see Preview:
// High throughput for FIFO queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html)
// in the Amazon Simple Queue Service Developer Guide.
AttributeNames []*string `locationNameList:"AttributeName" type:"list" flattened:"true"` AttributeNames []*string `locationNameList:"AttributeName" type:"list" flattened:"true"`
// The URL of the Amazon SQS queue whose attribute information is retrieved. // The URL of the Amazon SQS queue whose attribute information is retrieved.
@ -3358,7 +3324,7 @@ type GetQueueUrlInput struct {
// QueueName is a required field // QueueName is a required field
QueueName *string `type:"string" required:"true"` QueueName *string `type:"string" required:"true"`
// The AWS account ID of the account that created the queue. // The account ID of the account that created the queue.
QueueOwnerAWSAccountId *string `type:"string"` QueueOwnerAWSAccountId *string `type:"string"`
} }
@ -3398,7 +3364,7 @@ func (s *GetQueueUrlInput) SetQueueOwnerAWSAccountId(v string) *GetQueueUrlInput
} }
// For more information, see Interpreting Responses (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-api-responses.html) // For more information, see Interpreting Responses (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-api-responses.html)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
type GetQueueUrlOutput struct { type GetQueueUrlOutput struct {
_ struct{} `type:"structure"` _ struct{} `type:"structure"`
@ -3700,12 +3666,12 @@ type Message struct {
MD5OfMessageAttributes *string `type:"string"` MD5OfMessageAttributes *string `type:"string"`
// Each message attribute consists of a Name, Type, and Value. For more information, // Each message attribute consists of a Name, Type, and Value. For more information,
// see Amazon SQS Message Attributes (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-metadata.html#sqs-message-attributes) // see Amazon SQS message attributes (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-metadata.html#sqs-message-attributes)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
MessageAttributes map[string]*MessageAttributeValue `locationName:"MessageAttribute" locationNameKey:"Name" locationNameValue:"Value" type:"map" flattened:"true"` MessageAttributes map[string]*MessageAttributeValue `locationName:"MessageAttribute" locationNameKey:"Name" locationNameValue:"Value" type:"map" flattened:"true"`
// A unique identifier for the message. A MessageIdis considered unique across // A unique identifier for the message. A MessageIdis considered unique across
// all AWS accounts for an extended period of time. // all accounts for an extended period of time.
MessageId *string `type:"string"` MessageId *string `type:"string"`
// An identifier associated with the act of receiving the message. A new receipt // An identifier associated with the act of receiving the message. A new receipt
@ -3790,7 +3756,7 @@ type MessageAttributeValue struct {
// //
// You can also append custom labels. For more information, see Amazon SQS Message // You can also append custom labels. For more information, see Amazon SQS Message
// Attributes (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-metadata.html#sqs-message-attributes) // Attributes (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-metadata.html#sqs-message-attributes)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// DataType is a required field // DataType is a required field
DataType *string `type:"string" required:"true"` DataType *string `type:"string" required:"true"`
@ -3878,7 +3844,7 @@ type MessageSystemAttributeValue struct {
// //
// You can also append custom labels. For more information, see Amazon SQS Message // You can also append custom labels. For more information, see Amazon SQS Message
// Attributes (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-metadata.html#sqs-message-attributes) // Attributes (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-metadata.html#sqs-message-attributes)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// DataType is a required field // DataType is a required field
DataType *string `type:"string" required:"true"` DataType *string `type:"string" required:"true"`
@ -4013,7 +3979,7 @@ type ReceiveMessageInput struct {
// * ApproximateReceiveCount Returns the number of times a message has // * ApproximateReceiveCount Returns the number of times a message has
// been received across all queues but not deleted. // been received across all queues but not deleted.
// //
// * AWSTraceHeader Returns the AWS X-Ray trace header string. // * AWSTraceHeader Returns the X-Ray trace header string.
// //
// * SenderId For an IAM user, returns the IAM user ID, for example ABCDEFGHI1JKLMNOPQ23R. // * SenderId For an IAM user, returns the IAM user ID, for example ABCDEFGHI1JKLMNOPQ23R.
// For an IAM role, returns the IAM role ID, for example ABCDE1F2GH3I4JK5LMNOP:i-a123b456. // For an IAM role, returns the IAM role ID, for example ABCDE1F2GH3I4JK5LMNOP:i-a123b456.
@ -4090,15 +4056,14 @@ type ReceiveMessageInput struct {
// return the same messages and receipt handles. If a retry occurs within // return the same messages and receipt handles. If a retry occurs within
// the deduplication interval, it resets the visibility timeout. For more // the deduplication interval, it resets the visibility timeout. For more
// information, see Visibility Timeout (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html) // information, see Visibility Timeout (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html)
// in the Amazon Simple Queue Service Developer Guide. If a caller of the // in the Amazon SQS Developer Guide. If a caller of the ReceiveMessage action
// ReceiveMessage action still processes messages when the visibility timeout // still processes messages when the visibility timeout expires and messages
// expires and messages become visible, another worker consuming from the // become visible, another worker consuming from the same queue can receive
// same queue can receive the same messages and therefore process duplicates. // the same messages and therefore process duplicates. Also, if a consumer
// Also, if a consumer whose message processing time is longer than the visibility // whose message processing time is longer than the visibility timeout tries
// timeout tries to delete the processed messages, the action fails with // to delete the processed messages, the action fails with an error. To mitigate
// an error. To mitigate this effect, ensure that your application observes // this effect, ensure that your application observes a safe threshold before
// a safe threshold before the visibility timeout expires and extend the // the visibility timeout expires and extend the visibility timeout as necessary.
// visibility timeout as necessary.
// //
// * While messages with a particular MessageGroupId are invisible, no more // * While messages with a particular MessageGroupId are invisible, no more
// messages belonging to the same MessageGroupId are returned until the visibility // messages belonging to the same MessageGroupId are returned until the visibility
@ -4114,7 +4079,7 @@ type ReceiveMessageInput struct {
// //
// For best practices of using ReceiveRequestAttemptId, see Using the ReceiveRequestAttemptId // For best practices of using ReceiveRequestAttemptId, see Using the ReceiveRequestAttemptId
// Request Parameter (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-receiverequestattemptid-request-parameter.html) // Request Parameter (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-receiverequestattemptid-request-parameter.html)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
ReceiveRequestAttemptId *string `type:"string"` ReceiveRequestAttemptId *string `type:"string"`
// The duration (in seconds) that the received messages are hidden from subsequent // The duration (in seconds) that the received messages are hidden from subsequent
@ -4421,8 +4386,8 @@ type SendMessageBatchRequestEntry struct {
Id *string `type:"string" required:"true"` Id *string `type:"string" required:"true"`
// Each message attribute consists of a Name, Type, and Value. For more information, // Each message attribute consists of a Name, Type, and Value. For more information,
// see Amazon SQS Message Attributes (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-metadata.html#sqs-message-attributes) // see Amazon SQS message attributes (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-metadata.html#sqs-message-attributes)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
MessageAttributes map[string]*MessageAttributeValue `locationName:"MessageAttribute" locationNameKey:"Name" locationNameValue:"Value" type:"map" flattened:"true"` MessageAttributes map[string]*MessageAttributeValue `locationName:"MessageAttribute" locationNameKey:"Name" locationNameValue:"Value" type:"map" flattened:"true"`
// The body of the message. // The body of the message.
@ -4435,8 +4400,8 @@ type SendMessageBatchRequestEntry struct {
// The token used for deduplication of messages within a 5-minute minimum deduplication // The token used for deduplication of messages within a 5-minute minimum deduplication
// interval. If a message with a particular MessageDeduplicationId is sent successfully, // interval. If a message with a particular MessageDeduplicationId is sent successfully,
// subsequent messages with the same MessageDeduplicationId are accepted successfully // subsequent messages with the same MessageDeduplicationId are accepted successfully
// but aren't delivered. For more information, see Exactly-Once Processing (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing) // but aren't delivered. For more information, see Exactly-once processing (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-exactly-once-processing.html)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// * Every message must have a unique MessageDeduplicationId, You may provide // * Every message must have a unique MessageDeduplicationId, You may provide
// a MessageDeduplicationId explicitly. If you aren't able to provide a MessageDeduplicationId // a MessageDeduplicationId explicitly. If you aren't able to provide a MessageDeduplicationId
@ -4471,7 +4436,7 @@ type SendMessageBatchRequestEntry struct {
// //
// For best practices of using MessageDeduplicationId, see Using the MessageDeduplicationId // For best practices of using MessageDeduplicationId, see Using the MessageDeduplicationId
// Property (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagededuplicationid-property.html) // Property (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagededuplicationid-property.html)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
MessageDeduplicationId *string `type:"string"` MessageDeduplicationId *string `type:"string"`
// This parameter applies only to FIFO (first-in-first-out) queues. // This parameter applies only to FIFO (first-in-first-out) queues.
@ -4496,7 +4461,7 @@ type SendMessageBatchRequestEntry struct {
// //
// For best practices of using MessageGroupId, see Using the MessageGroupId // For best practices of using MessageGroupId, see Using the MessageGroupId
// Property (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagegroupid-property.html) // Property (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagegroupid-property.html)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// MessageGroupId is required for FIFO queues. You can't use it for Standard // MessageGroupId is required for FIFO queues. You can't use it for Standard
// queues. // queues.
@ -4506,8 +4471,8 @@ type SendMessageBatchRequestEntry struct {
// of a Name, Type, and Value. // of a Name, Type, and Value.
// //
// * Currently, the only supported message system attribute is AWSTraceHeader. // * Currently, the only supported message system attribute is AWSTraceHeader.
// Its type must be String and its value must be a correctly formatted AWS // Its type must be String and its value must be a correctly formatted X-Ray
// X-Ray trace header string. // trace header string.
// //
// * The size of a message system attribute doesn't count towards the total // * The size of a message system attribute doesn't count towards the total
// size of a message. // size of a message.
@ -4704,8 +4669,8 @@ type SendMessageInput struct {
DelaySeconds *int64 `type:"integer"` DelaySeconds *int64 `type:"integer"`
// Each message attribute consists of a Name, Type, and Value. For more information, // Each message attribute consists of a Name, Type, and Value. For more information,
// see Amazon SQS Message Attributes (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-metadata.html#sqs-message-attributes) // see Amazon SQS message attributes (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-metadata.html#sqs-message-attributes)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
MessageAttributes map[string]*MessageAttributeValue `locationName:"MessageAttribute" locationNameKey:"Name" locationNameValue:"Value" type:"map" flattened:"true"` MessageAttributes map[string]*MessageAttributeValue `locationName:"MessageAttribute" locationNameKey:"Name" locationNameValue:"Value" type:"map" flattened:"true"`
// The message to send. The minimum size is one character. The maximum size // The message to send. The minimum size is one character. The maximum size
@ -4727,9 +4692,9 @@ type SendMessageInput struct {
// The token used for deduplication of sent messages. If a message with a particular // The token used for deduplication of sent messages. If a message with a particular
// MessageDeduplicationId is sent successfully, any messages sent with the same // MessageDeduplicationId is sent successfully, any messages sent with the same
// MessageDeduplicationId are accepted successfully but aren't delivered during // MessageDeduplicationId are accepted successfully but aren't delivered during
// the 5-minute deduplication interval. For more information, see Exactly-Once // the 5-minute deduplication interval. For more information, see Exactly-once
// Processing (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing) // processing (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-exactly-once-processing.html)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// * Every message must have a unique MessageDeduplicationId, You may provide // * Every message must have a unique MessageDeduplicationId, You may provide
// a MessageDeduplicationId explicitly. If you aren't able to provide a MessageDeduplicationId // a MessageDeduplicationId explicitly. If you aren't able to provide a MessageDeduplicationId
@ -4764,7 +4729,7 @@ type SendMessageInput struct {
// //
// For best practices of using MessageDeduplicationId, see Using the MessageDeduplicationId // For best practices of using MessageDeduplicationId, see Using the MessageDeduplicationId
// Property (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagededuplicationid-property.html) // Property (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagededuplicationid-property.html)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
MessageDeduplicationId *string `type:"string"` MessageDeduplicationId *string `type:"string"`
// This parameter applies only to FIFO (first-in-first-out) queues. // This parameter applies only to FIFO (first-in-first-out) queues.
@ -4789,7 +4754,7 @@ type SendMessageInput struct {
// //
// For best practices of using MessageGroupId, see Using the MessageGroupId // For best practices of using MessageGroupId, see Using the MessageGroupId
// Property (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagegroupid-property.html) // Property (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagegroupid-property.html)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// MessageGroupId is required for FIFO queues. You can't use it for Standard // MessageGroupId is required for FIFO queues. You can't use it for Standard
// queues. // queues.
@ -4799,8 +4764,8 @@ type SendMessageInput struct {
// of a Name, Type, and Value. // of a Name, Type, and Value.
// //
// * Currently, the only supported message system attribute is AWSTraceHeader. // * Currently, the only supported message system attribute is AWSTraceHeader.
// Its type must be String and its value must be a correctly formatted AWS // Its type must be String and its value must be a correctly formatted X-Ray
// X-Ray trace header string. // trace header string.
// //
// * The size of a message system attribute doesn't count towards the total // * The size of a message system attribute doesn't count towards the total
// size of a message. // size of a message.
@ -4925,7 +4890,7 @@ type SendMessageOutput struct {
// An attribute containing the MessageId of the message sent to the queue. For // An attribute containing the MessageId of the message sent to the queue. For
// more information, see Queue and Message Identifiers (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-message-identifiers.html) // more information, see Queue and Message Identifiers (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-message-identifiers.html)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
MessageId *string `type:"string"` MessageId *string `type:"string"`
// This parameter applies only to FIFO (first-in-first-out) queues. // This parameter applies only to FIFO (first-in-first-out) queues.
@ -4997,9 +4962,10 @@ type SetQueueAttributesInput struct {
// Amazon SQS retains a message. Valid values: An integer representing seconds, // Amazon SQS retains a message. Valid values: An integer representing seconds,
// from 60 (1 minute) to 1,209,600 (14 days). Default: 345,600 (4 days). // from 60 (1 minute) to 1,209,600 (14 days). Default: 345,600 (4 days).
// //
// * Policy The queue's policy. A valid AWS policy. For more information // * Policy The queue's policy. A valid Amazon Web Services policy. For
// about policy structure, see Overview of AWS IAM Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html) // more information about policy structure, see Overview of Amazon Web Services
// in the Amazon IAM User Guide. // IAM Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html)
// in the Identity and Access Management User Guide.
// //
// * ReceiveMessageWaitTimeSeconds The length of time, in seconds, for // * ReceiveMessageWaitTimeSeconds The length of time, in seconds, for
// which a ReceiveMessage action waits for a message to arrive. Valid values: // which a ReceiveMessage action waits for a message to arrive. Valid values:
@ -5009,9 +4975,9 @@ type SetQueueAttributesInput struct {
// queue functionality of the source queue as a JSON object. For more information // queue functionality of the source queue as a JSON object. For more information
// about the redrive policy and dead-letter queues, see Using Amazon SQS // about the redrive policy and dead-letter queues, see Using Amazon SQS
// Dead-Letter Queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) // Dead-Letter Queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html)
// in the Amazon Simple Queue Service Developer Guide. deadLetterTargetArn // in the Amazon SQS Developer Guide. deadLetterTargetArn The Amazon
// The Amazon Resource Name (ARN) of the dead-letter queue to which Amazon // Resource Name (ARN) of the dead-letter queue to which Amazon SQS moves
// SQS moves messages after the value of maxReceiveCount is exceeded. maxReceiveCount // messages after the value of maxReceiveCount is exceeded. maxReceiveCount
// The number of times a message is delivered to the source queue before // The number of times a message is delivered to the source queue before
// being moved to the dead-letter queue. When the ReceiveCount for a message // being moved to the dead-letter queue. When the ReceiveCount for a message
// exceeds the maxReceiveCount for a queue, Amazon SQS moves the message // exceeds the maxReceiveCount for a queue, Amazon SQS moves the message
@ -5023,36 +4989,37 @@ type SetQueueAttributesInput struct {
// Valid values: An integer from 0 to 43,200 (12 hours). Default: 30. For // Valid values: An integer from 0 to 43,200 (12 hours). Default: 30. For
// more information about the visibility timeout, see Visibility Timeout // more information about the visibility timeout, see Visibility Timeout
// (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html) // (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// The following attributes apply only to server-side-encryption (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html): // The following attributes apply only to server-side-encryption (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html):
// //
// * KmsMasterKeyId The ID of an AWS-managed customer master key (CMK) // * KmsMasterKeyId The ID of an Amazon Web Services managed customer
// for Amazon SQS or a custom CMK. For more information, see Key Terms (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-sse-key-terms). // master key (CMK) for Amazon SQS or a custom CMK. For more information,
// see Key Terms (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-sse-key-terms).
// While the alias of the AWS-managed CMK for Amazon SQS is always alias/aws/sqs, // While the alias of the AWS-managed CMK for Amazon SQS is always alias/aws/sqs,
// the alias of a custom CMK can, for example, be alias/MyAlias . For more // the alias of a custom CMK can, for example, be alias/MyAlias . For more
// examples, see KeyId (https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters) // examples, see KeyId (https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters)
// in the AWS Key Management Service API Reference. // in the Key Management Service API Reference.
// //
// * KmsDataKeyReusePeriodSeconds The length of time, in seconds, for // * KmsDataKeyReusePeriodSeconds The length of time, in seconds, for
// which Amazon SQS can reuse a data key (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys) // which Amazon SQS can reuse a data key (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys)
// to encrypt or decrypt messages before calling AWS KMS again. An integer // to encrypt or decrypt messages before calling KMS again. An integer representing
// representing seconds, between 60 seconds (1 minute) and 86,400 seconds // seconds, between 60 seconds (1 minute) and 86,400 seconds (24 hours).
// (24 hours). Default: 300 (5 minutes). A shorter time period provides better // Default: 300 (5 minutes). A shorter time period provides better security
// security but results in more calls to KMS which might incur charges after // but results in more calls to KMS which might incur charges after Free
// Free Tier. For more information, see How Does the Data Key Reuse Period // Tier. For more information, see How Does the Data Key Reuse Period Work?
// Work? (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-how-does-the-data-key-reuse-period-work). // (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-how-does-the-data-key-reuse-period-work).
// //
// The following attribute applies only to FIFO (first-in-first-out) queues // The following attribute applies only to FIFO (first-in-first-out) queues
// (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html): // (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html):
// //
// * ContentBasedDeduplication Enables content-based deduplication. For // * ContentBasedDeduplication Enables content-based deduplication. For
// more information, see Exactly-Once Processing (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing) // more information, see Exactly-once processing (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues-exactly-once-processing.html)
// in the Amazon Simple Queue Service Developer Guide. Note the following: // in the Amazon SQS Developer Guide. Note the following: Every message must
// Every message must have a unique MessageDeduplicationId. You may provide // have a unique MessageDeduplicationId. You may provide a MessageDeduplicationId
// a MessageDeduplicationId explicitly. If you aren't able to provide a MessageDeduplicationId // explicitly. If you aren't able to provide a MessageDeduplicationId and
// and you enable ContentBasedDeduplication for your queue, Amazon SQS uses // you enable ContentBasedDeduplication for your queue, Amazon SQS uses a
// a SHA-256 hash to generate the MessageDeduplicationId using the body of // SHA-256 hash to generate the MessageDeduplicationId using the body of
// the message (but not the attributes of the message). If you don't provide // the message (but not the attributes of the message). If you don't provide
// a MessageDeduplicationId and the queue doesn't have ContentBasedDeduplication // a MessageDeduplicationId and the queue doesn't have ContentBasedDeduplication
// set, the action fails with an error. If the queue has ContentBasedDeduplication // set, the action fails with an error. If the queue has ContentBasedDeduplication
@ -5064,15 +5031,7 @@ type SetQueueAttributesInput struct {
// as the one generated for the first MessageDeduplicationId, the two messages // as the one generated for the first MessageDeduplicationId, the two messages
// are treated as duplicates and only one copy of the message is delivered. // are treated as duplicates and only one copy of the message is delivered.
// //
// Preview: High throughput for FIFO queues // The following attributes apply only to high throughput for FIFO queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html):
//
// High throughput for Amazon SQS FIFO queues is in preview release and is subject
// to change. This feature provides a high number of transactions per second
// (TPS) for messages in FIFO queues. For information on throughput quotas,
// see Quotas related to messages (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-messages.html)
// in the Amazon Simple Queue Service Developer Guide.
//
// This preview includes two new attributes:
// //
// * DeduplicationScope Specifies whether message deduplication occurs // * DeduplicationScope Specifies whether message deduplication occurs
// at the message group or queue level. Valid values are messageGroup and // at the message group or queue level. Valid values are messageGroup and
@ -5090,22 +5049,11 @@ type SetQueueAttributesInput struct {
// * Set FifoThroughputLimit to perMessageGroupId. // * Set FifoThroughputLimit to perMessageGroupId.
// //
// If you set these attributes to anything other than the values shown for enabling // If you set these attributes to anything other than the values shown for enabling
// high throughput, standard throughput is in effect and deduplication occurs // high throughput, normal throughput is in effect and deduplication occurs
// as specified. // as specified.
// //
// This preview is available in the following AWS Regions: // For information on throughput quotas, see Quotas related to messages (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-messages.html)
// // in the Amazon SQS Developer Guide.
// * US East (Ohio); us-east-2
//
// * US East (N. Virginia); us-east-1
//
// * US West (Oregon); us-west-2
//
// * Europe (Ireland); eu-west-1
//
// For more information about high throughput for FIFO queues, see Preview:
// High throughput for FIFO queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/high-throughput-fifo.html)
// in the Amazon Simple Queue Service Developer Guide.
// //
// Attributes is a required field // Attributes is a required field
Attributes map[string]*string `locationName:"Attribute" locationNameKey:"Name" locationNameValue:"Value" type:"map" flattened:"true" required:"true"` Attributes map[string]*string `locationName:"Attribute" locationNameKey:"Name" locationNameValue:"Value" type:"map" flattened:"true" required:"true"`

View File

@ -3,20 +3,19 @@
// Package sqs provides the client and types for making API // Package sqs provides the client and types for making API
// requests to Amazon Simple Queue Service. // requests to Amazon Simple Queue Service.
// //
// Welcome to the Amazon Simple Queue Service API Reference. // Welcome to the Amazon SQS API Reference.
// //
// Amazon Simple Queue Service (Amazon SQS) is a reliable, highly-scalable hosted // Amazon SQS is a reliable, highly-scalable hosted queue for storing messages
// queue for storing messages as they travel between applications or microservices. // as they travel between applications or microservices. Amazon SQS moves data
// Amazon SQS moves data between distributed application components and helps // between distributed application components and helps you decouple these components.
// you decouple these components.
// //
// For information on the permissions you need to use this API, see Identity // For information on the permissions you need to use this API, see Identity
// and access management (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-authentication-and-access-control.html) // and access management (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-authentication-and-access-control.html)
// in the Amazon Simple Queue Service Developer Guide. // in the Amazon SQS Developer Guide.
// //
// You can use AWS SDKs (http://aws.amazon.com/tools/#sdk) to access Amazon // You can use Amazon Web Services SDKs (http://aws.amazon.com/tools/#sdk) to
// SQS using your favorite programming language. The SDKs perform tasks such // access Amazon SQS using your favorite programming language. The SDKs perform
// as the following automatically: // tasks such as the following automatically:
// //
// * Cryptographically sign your service requests // * Cryptographically sign your service requests
// //
@ -28,11 +27,11 @@
// //
// * Amazon SQS Product Page (http://aws.amazon.com/sqs/) // * Amazon SQS Product Page (http://aws.amazon.com/sqs/)
// //
// * Amazon Simple Queue Service Developer Guide Making API Requests (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-making-api-requests.html) // * Amazon SQS Developer Guide Making API Requests (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-making-api-requests.html)
// Amazon SQS Message Attributes (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-metadata.html#sqs-message-attributes) // Amazon SQS Message Attributes (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-metadata.html#sqs-message-attributes)
// Amazon SQS Dead-Letter Queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) // Amazon SQS Dead-Letter Queues (https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html)
// //
// * Amazon SQS in the AWS CLI Command Reference (http://docs.aws.amazon.com/cli/latest/reference/sqs/index.html) // * Amazon SQS in the Command Line Interface (http://docs.aws.amazon.com/cli/latest/reference/sqs/index.html)
// //
// * Amazon Web Services General Reference Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#sqs_region) // * Amazon Web Services General Reference Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#sqs_region)
// //

File diff suppressed because it is too large Load Diff

View File

@ -3,11 +3,11 @@
// Package sts provides the client and types for making API // Package sts provides the client and types for making API
// requests to AWS Security Token Service. // requests to AWS Security Token Service.
// //
// AWS Security Token Service (STS) enables you to request temporary, limited-privilege // Security Token Service (STS) enables you to request temporary, limited-privilege
// credentials for AWS Identity and Access Management (IAM) users or for users // credentials for Identity and Access Management (IAM) users or for users that
// that you authenticate (federated users). This guide provides descriptions // you authenticate (federated users). This guide provides descriptions of the
// of the STS API. For more information about using this service, see Temporary // STS API. For more information about using this service, see Temporary Security
// Security Credentials (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html). // Credentials (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html).
// //
// See https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15 for more information on this service. // See https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15 for more information on this service.
// //

View File

@ -42,8 +42,9 @@ const (
// ErrCodeInvalidIdentityTokenException for service response error code // ErrCodeInvalidIdentityTokenException for service response error code
// "InvalidIdentityToken". // "InvalidIdentityToken".
// //
// The web identity token that was passed could not be validated by AWS. Get // The web identity token that was passed could not be validated by Amazon Web
// a new identity token from the identity provider and then retry the request. // Services. Get a new identity token from the identity provider and then retry
// the request.
ErrCodeInvalidIdentityTokenException = "InvalidIdentityToken" ErrCodeInvalidIdentityTokenException = "InvalidIdentityToken"
// ErrCodeMalformedPolicyDocumentException for service response error code // ErrCodeMalformedPolicyDocumentException for service response error code
@ -57,11 +58,11 @@ const (
// "PackedPolicyTooLarge". // "PackedPolicyTooLarge".
// //
// The request was rejected because the total packed size of the session policies // The request was rejected because the total packed size of the session policies
// and session tags combined was too large. An AWS conversion compresses the // and session tags combined was too large. An Amazon Web Services conversion
// session policy document, session policy ARNs, and session tags into a packed // compresses the session policy document, session policy ARNs, and session
// binary format that has a separate limit. The error message indicates by percentage // tags into a packed binary format that has a separate limit. The error message
// how close the policies and tags are to the upper size limit. For more information, // indicates by percentage how close the policies and tags are to the upper
// see Passing Session Tags in STS (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html) // size limit. For more information, see Passing Session Tags in STS (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html)
// in the IAM User Guide. // in the IAM User Guide.
// //
// You could receive this error even though you meet other defined session policy // You could receive this error even though you meet other defined session policy
@ -76,7 +77,8 @@ const (
// STS is not activated in the requested region for the account that is being // STS is not activated in the requested region for the account that is being
// asked to generate credentials. The account administrator must use the IAM // asked to generate credentials. The account administrator must use the IAM
// console to activate STS in that region. For more information, see Activating // console to activate STS in that region. For more information, see Activating
// and Deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) // and Deactivating Amazon Web Services STS in an Amazon Web Services Region
// (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
// in the IAM User Guide. // in the IAM User Guide.
ErrCodeRegionDisabledException = "RegionDisabledException" ErrCodeRegionDisabledException = "RegionDisabledException"
) )

View File

@ -6,6 +6,10 @@ package http2
import "strings" import "strings"
// The HTTP protocols are defined in terms of ASCII, not Unicode. This file
// contains helper functions which may use Unicode-aware functions which would
// otherwise be unsafe and could introduce vulnerabilities if used improperly.
// asciiEqualFold is strings.EqualFold, ASCII only. It reports whether s and t // asciiEqualFold is strings.EqualFold, ASCII only. It reports whether s and t
// are equal, ASCII-case-insensitively. // are equal, ASCII-case-insensitively.
func asciiEqualFold(s, t string) bool { func asciiEqualFold(s, t string) bool {

View File

@ -259,16 +259,12 @@ func ConfigureServer(s *http.Server, conf *Server) error {
s.TLSConfig.PreferServerCipherSuites = true s.TLSConfig.PreferServerCipherSuites = true
haveNPN := false if !strSliceContains(s.TLSConfig.NextProtos, NextProtoTLS) {
for _, p := range s.TLSConfig.NextProtos {
if p == NextProtoTLS {
haveNPN = true
break
}
}
if !haveNPN {
s.TLSConfig.NextProtos = append(s.TLSConfig.NextProtos, NextProtoTLS) s.TLSConfig.NextProtos = append(s.TLSConfig.NextProtos, NextProtoTLS)
} }
if !strSliceContains(s.TLSConfig.NextProtos, "http/1.1") {
s.TLSConfig.NextProtos = append(s.TLSConfig.NextProtos, "http/1.1")
}
if s.TLSNextProto == nil { if s.TLSNextProto == nil {
s.TLSNextProto = map[string]func(*http.Server, *tls.Conn, http.Handler){} s.TLSNextProto = map[string]func(*http.Server, *tls.Conn, http.Handler){}

View File

@ -264,9 +264,8 @@ type ClientConn struct {
peerMaxHeaderListSize uint64 peerMaxHeaderListSize uint64
initialWindowSize uint32 initialWindowSize uint32
hbuf bytes.Buffer // HPACK encoder writes into this hbuf bytes.Buffer // HPACK encoder writes into this
henc *hpack.Encoder henc *hpack.Encoder
freeBuf [][]byte
wmu sync.Mutex // held while writing; acquire AFTER mu if holding both wmu sync.Mutex // held while writing; acquire AFTER mu if holding both
werr error // first write error that has occurred werr error // first write error that has occurred
@ -913,46 +912,6 @@ func (cc *ClientConn) closeForLostPing() error {
return cc.closeForError(err) return cc.closeForError(err)
} }
const maxAllocFrameSize = 512 << 10
// frameBuffer returns a scratch buffer suitable for writing DATA frames.
// They're capped at the min of the peer's max frame size or 512KB
// (kinda arbitrarily), but definitely capped so we don't allocate 4GB
// bufers.
func (cc *ClientConn) frameScratchBuffer() []byte {
cc.mu.Lock()
size := cc.maxFrameSize
if size > maxAllocFrameSize {
size = maxAllocFrameSize
}
for i, buf := range cc.freeBuf {
if len(buf) >= int(size) {
cc.freeBuf[i] = nil
cc.mu.Unlock()
return buf[:size]
}
}
cc.mu.Unlock()
return make([]byte, size)
}
func (cc *ClientConn) putFrameScratchBuffer(buf []byte) {
cc.mu.Lock()
defer cc.mu.Unlock()
const maxBufs = 4 // arbitrary; 4 concurrent requests per conn? investigate.
if len(cc.freeBuf) < maxBufs {
cc.freeBuf = append(cc.freeBuf, buf)
return
}
for i, old := range cc.freeBuf {
if old == nil {
cc.freeBuf[i] = buf
return
}
}
// forget about it.
}
// errRequestCanceled is a copy of net/http's errRequestCanceled because it's not // errRequestCanceled is a copy of net/http's errRequestCanceled because it's not
// exported. At least they'll be DeepEqual for h1-vs-h2 comparisons tests. // exported. At least they'll be DeepEqual for h1-vs-h2 comparisons tests.
var errRequestCanceled = errors.New("net/http: request canceled") var errRequestCanceled = errors.New("net/http: request canceled")
@ -1295,11 +1254,35 @@ var (
errReqBodyTooLong = errors.New("http2: request body larger than specified content length") errReqBodyTooLong = errors.New("http2: request body larger than specified content length")
) )
// frameScratchBufferLen returns the length of a buffer to use for
// outgoing request bodies to read/write to/from.
//
// It returns max(1, min(peer's advertised max frame size,
// Request.ContentLength+1, 512KB)).
func (cs *clientStream) frameScratchBufferLen(maxFrameSize int) int {
const max = 512 << 10
n := int64(maxFrameSize)
if n > max {
n = max
}
if cl := actualContentLength(cs.req); cl != -1 && cl+1 < n {
// Add an extra byte past the declared content-length to
// give the caller's Request.Body io.Reader a chance to
// give us more bytes than they declared, so we can catch it
// early.
n = cl + 1
}
if n < 1 {
return 1
}
return int(n) // doesn't truncate; max is 512K
}
var bufPool sync.Pool // of *[]byte
func (cs *clientStream) writeRequestBody(body io.Reader, bodyCloser io.Closer) (err error) { func (cs *clientStream) writeRequestBody(body io.Reader, bodyCloser io.Closer) (err error) {
cc := cs.cc cc := cs.cc
sentEnd := false // whether we sent the final DATA frame w/ END_STREAM sentEnd := false // whether we sent the final DATA frame w/ END_STREAM
buf := cc.frameScratchBuffer()
defer cc.putFrameScratchBuffer(buf)
defer func() { defer func() {
traceWroteRequest(cs.trace, err) traceWroteRequest(cs.trace, err)
@ -1318,9 +1301,24 @@ func (cs *clientStream) writeRequestBody(body io.Reader, bodyCloser io.Closer) (
remainLen := actualContentLength(req) remainLen := actualContentLength(req)
hasContentLen := remainLen != -1 hasContentLen := remainLen != -1
cc.mu.Lock()
maxFrameSize := int(cc.maxFrameSize)
cc.mu.Unlock()
// Scratch buffer for reading into & writing from.
scratchLen := cs.frameScratchBufferLen(maxFrameSize)
var buf []byte
if bp, ok := bufPool.Get().(*[]byte); ok && len(*bp) >= scratchLen {
defer bufPool.Put(bp)
buf = *bp
} else {
buf = make([]byte, scratchLen)
defer bufPool.Put(&buf)
}
var sawEOF bool var sawEOF bool
for !sawEOF { for !sawEOF {
n, err := body.Read(buf[:len(buf)-1]) n, err := body.Read(buf[:len(buf)])
if hasContentLen { if hasContentLen {
remainLen -= int64(n) remainLen -= int64(n)
if remainLen == 0 && err == nil { if remainLen == 0 && err == nil {
@ -1331,8 +1329,9 @@ func (cs *clientStream) writeRequestBody(body io.Reader, bodyCloser io.Closer) (
// to send the END_STREAM bit early, double-check that we're actually // to send the END_STREAM bit early, double-check that we're actually
// at EOF. Subsequent reads should return (0, EOF) at this point. // at EOF. Subsequent reads should return (0, EOF) at this point.
// If either value is different, we return an error in one of two ways below. // If either value is different, we return an error in one of two ways below.
var scratch [1]byte
var n1 int var n1 int
n1, err = body.Read(buf[n:]) n1, err = body.Read(scratch[:])
remainLen -= int64(n1) remainLen -= int64(n1)
} }
if remainLen < 0 { if remainLen < 0 {
@ -1402,10 +1401,6 @@ func (cs *clientStream) writeRequestBody(body io.Reader, bodyCloser io.Closer) (
} }
} }
cc.mu.Lock()
maxFrameSize := int(cc.maxFrameSize)
cc.mu.Unlock()
cc.wmu.Lock() cc.wmu.Lock()
defer cc.wmu.Unlock() defer cc.wmu.Unlock()

4
vendor/modules.txt generated vendored
View File

@ -116,7 +116,7 @@ github.com/aws/amazon-ec2-instance-selector/v2/pkg/bytequantity
github.com/aws/amazon-ec2-instance-selector/v2/pkg/cli github.com/aws/amazon-ec2-instance-selector/v2/pkg/cli
github.com/aws/amazon-ec2-instance-selector/v2/pkg/selector github.com/aws/amazon-ec2-instance-selector/v2/pkg/selector
github.com/aws/amazon-ec2-instance-selector/v2/pkg/selector/outputs github.com/aws/amazon-ec2-instance-selector/v2/pkg/selector/outputs
# github.com/aws/aws-sdk-go v1.38.29 # github.com/aws/aws-sdk-go v1.40.0
## explicit ## explicit
github.com/aws/aws-sdk-go/aws github.com/aws/aws-sdk-go/aws
github.com/aws/aws-sdk-go/aws/arn github.com/aws/aws-sdk-go/aws/arn
@ -744,7 +744,7 @@ golang.org/x/crypto/ssh/internal/bcrypt_pbkdf
# golang.org/x/mod v0.4.2 # golang.org/x/mod v0.4.2
golang.org/x/mod/module golang.org/x/mod/module
golang.org/x/mod/semver golang.org/x/mod/semver
# golang.org/x/net v0.0.0-20210525063256-abc453219eb5 # golang.org/x/net v0.0.0-20210614182718-04defd469f4e
## explicit ## explicit
golang.org/x/net/bpf golang.org/x/net/bpf
golang.org/x/net/context golang.org/x/net/context