diff --git a/CHANGELOG.md b/CHANGELOG.md index 18a52d6c380..7e292cc6145 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,28 @@ +Release v1.35.0 (2020-09-30) +=== + +### Service Client Updates +* `service/application-autoscaling`: Updates service API and documentation +* `service/datasync`: Updates service API and documentation +* `service/directconnect`: Updates service documentation + * Documentation updates for AWS Direct Connect. +* `service/elasticmapreduce`: Updates service API and documentation + * Amazon EMR customers can now use EC2 placement group to influence the placement of master nodes in a high-availability (HA) cluster across distinct underlying hardware to improve cluster availability. +* `service/imagebuilder`: Updates service API and documentation +* `service/iot`: Updates service API and documentation + * AWS IoT Rules Engine adds Timestream action. The Timestream rule action lets you stream time-series data from IoT sensors and applications to Amazon Timestream databases for time series analysis. +* `service/mediaconnect`: Updates service API, documentation, and paginators +* `service/pinpoint`: Updates service API and documentation + * Amazon Pinpoint - Features - Customers can start a journey based on an event being triggered by an endpoint or user. +* `service/s3`: Updates service API, documentation, and examples + * Amazon S3 on Outposts expands object storage to on-premises AWS Outposts environments, enabling you to store and retrieve objects using S3 APIs and features. +* `service/s3outposts`: Adds new service +* `service/securityhub`: Updates service API and documentation + +### SDK Features +* `service/s3`: Adds support for outposts access point ARNs. +* `service/s3control`: Adds support for S3 on outposts access point and S3 on outposts bucket ARNs. + Release v1.34.34 (2020-09-29) === diff --git a/aws/endpoints/defaults.go b/aws/endpoints/defaults.go index c16aedce2f3..dd42293ef08 100644 --- a/aws/endpoints/defaults.go +++ b/aws/endpoints/defaults.go @@ -6585,9 +6585,21 @@ var awsPartition = partition{ "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, - "sa-east-1": endpoint{}, - "us-east-1": endpoint{}, - "us-west-2": endpoint{}, + "fips-us-east-1": endpoint{ + Hostname: "workspaces-fips.us-east-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-east-1", + }, + }, + "fips-us-west-2": endpoint{ + Hostname: "workspaces-fips.us-west-2.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-2", + }, + }, + "sa-east-1": endpoint{}, + "us-east-1": endpoint{}, + "us-west-2": endpoint{}, }, }, "xray": service{ @@ -7053,6 +7065,23 @@ var awscnPartition = partition{ "cn-northwest-1": endpoint{}, }, }, + "iotevents": service{ + + Endpoints: endpoints{ + "cn-north-1": endpoint{}, + }, + }, + "ioteventsdata": service{ + + Endpoints: endpoints{ + "cn-north-1": endpoint{ + Hostname: "data.iotevents.cn-north-1.amazonaws.com.cn", + CredentialScope: credentialScope{ + Region: "cn-north-1", + }, + }, + }, + }, "iotsecuredtunneling": service{ Endpoints: endpoints{ @@ -8954,6 +8983,13 @@ var awsusgovPartition = partition{ "us-gov-west-1": endpoint{}, }, }, + "transfer": service{ + + Endpoints: endpoints{ + "us-gov-east-1": endpoint{}, + "us-gov-west-1": endpoint{}, + }, + }, "translate": service{ Defaults: endpoint{ Protocols: []string{"https"}, @@ -8988,6 +9024,12 @@ var awsusgovPartition = partition{ "workspaces": service{ Endpoints: endpoints{ + "fips-us-gov-west-1": endpoint{ + Hostname: "workspaces-fips.us-gov-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-gov-west-1", + }, + }, "us-gov-west-1": endpoint{}, }, }, diff --git a/aws/version.go b/aws/version.go index f6275fc9eca..d0021c1b532 100644 --- a/aws/version.go +++ b/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.34.34" +const SDKVersion = "1.35.0" diff --git a/service/s3/internal/arn/accesspoint_arn.go b/internal/s3shared/arn/accesspoint_arn.go similarity index 54% rename from service/s3/internal/arn/accesspoint_arn.go rename to internal/s3shared/arn/accesspoint_arn.go index 2f93f96fd50..bf18031a38e 100644 --- a/service/s3/internal/arn/accesspoint_arn.go +++ b/internal/s3shared/arn/accesspoint_arn.go @@ -19,23 +19,28 @@ func (a AccessPointARN) GetARN() arn.ARN { // ParseAccessPointResource attempts to parse the ARN's resource as an // AccessPoint resource. +// +// Supported Access point resource format: +// - Access point format: arn:{partition}:s3:{region}:{accountId}:accesspoint/{accesspointName} +// - example: arn.aws.s3.us-west-2.012345678901:accesspoint/myaccesspoint +// func ParseAccessPointResource(a arn.ARN, resParts []string) (AccessPointARN, error) { if len(a.Region) == 0 { - return AccessPointARN{}, InvalidARNError{a, "region not set"} + return AccessPointARN{}, InvalidARNError{ARN: a, Reason: "region not set"} } if len(a.AccountID) == 0 { - return AccessPointARN{}, InvalidARNError{a, "account-id not set"} + return AccessPointARN{}, InvalidARNError{ARN: a, Reason: "account-id not set"} } if len(resParts) == 0 { - return AccessPointARN{}, InvalidARNError{a, "resource-id not set"} + return AccessPointARN{}, InvalidARNError{ARN: a, Reason: "resource-id not set"} } if len(resParts) > 1 { - return AccessPointARN{}, InvalidARNError{a, "sub resource not supported"} + return AccessPointARN{}, InvalidARNError{ARN: a, Reason: "sub resource not supported"} } resID := resParts[0] if len(strings.TrimSpace(resID)) == 0 { - return AccessPointARN{}, InvalidARNError{a, "resource-id not set"} + return AccessPointARN{}, InvalidARNError{ARN: a, Reason: "resource-id not set"} } return AccessPointARN{ diff --git a/service/s3/internal/arn/accesspoint_arn_test.go b/internal/s3shared/arn/accesspoint_arn_test.go similarity index 100% rename from service/s3/internal/arn/accesspoint_arn_test.go rename to internal/s3shared/arn/accesspoint_arn_test.go diff --git a/service/s3/internal/arn/arn.go b/internal/s3shared/arn/arn.go similarity index 75% rename from service/s3/internal/arn/arn.go rename to internal/s3shared/arn/arn.go index a942d887f7a..7a8e46fbdae 100644 --- a/service/s3/internal/arn/arn.go +++ b/internal/s3shared/arn/arn.go @@ -1,6 +1,7 @@ package arn import ( + "fmt" "strings" "github.com/aws/aws-sdk-go/aws/arn" @@ -25,13 +26,14 @@ func ParseResource(s string, resParser ResourceParser) (resARN Resource, err err } if len(a.Partition) == 0 { - return nil, InvalidARNError{a, "partition not set"} + return nil, InvalidARNError{ARN: a, Reason: "partition not set"} } - if a.Service != "s3" { - return nil, InvalidARNError{a, "service is not S3"} + + if a.Service != "s3" && a.Service != "s3-outposts" { + return nil, InvalidARNError{ARN: a, Reason: "service is not supported"} } if len(a.Resource) == 0 { - return nil, InvalidARNError{a, "resource not set"} + return nil, InvalidARNError{ARN: a, Reason: "resource not set"} } return resParser(a) @@ -66,6 +68,7 @@ type InvalidARNError struct { Reason string } +// Error returns a string denoting the occurred InvalidARNError func (e InvalidARNError) Error() string { - return "invalid Amazon S3 ARN, " + e.Reason + ", " + e.ARN.String() + return fmt.Sprintf("invalid Amazon %s ARN, %s, %s", e.ARN.Service, e.Reason, e.ARN.String()) } diff --git a/service/s3/internal/arn/arn_test.go b/internal/s3shared/arn/arn_test.go similarity index 97% rename from service/s3/internal/arn/arn_test.go rename to internal/s3shared/arn/arn_test.go index 8662b63e9e2..f5cee42e8e1 100644 --- a/service/s3/internal/arn/arn_test.go +++ b/internal/s3shared/arn/arn_test.go @@ -27,7 +27,7 @@ func TestParseResource(t *testing.T) { }, "Not S3 ARN": { Input: "arn:aws:sqs:us-west-2:012345678901:accesspoint", - ExpectErr: "service is not S3", + ExpectErr: "service is not supported", }, "No Resource": { Input: "arn:aws:s3:us-west-2:012345678901:", @@ -120,7 +120,7 @@ func mappedResourceParser(kinds map[string]func(arn.ARN, []string) (Resource, er fn, ok := kinds[parts[0]] if !ok { - return nil, InvalidARNError{a, "unknown resource type"} + return nil, InvalidARNError{ARN: a, Reason: "unknown resource type"} } return fn(a, parts[1:]) } diff --git a/internal/s3shared/arn/outpost_arn.go b/internal/s3shared/arn/outpost_arn.go new file mode 100644 index 00000000000..1e10f8de00b --- /dev/null +++ b/internal/s3shared/arn/outpost_arn.go @@ -0,0 +1,126 @@ +package arn + +import ( + "strings" + + "github.com/aws/aws-sdk-go/aws/arn" +) + +// OutpostARN interface that should be satisfied by outpost ARNs +type OutpostARN interface { + Resource + GetOutpostID() string +} + +// ParseOutpostARNResource will parse a provided ARNs resource using the appropriate ARN format +// and return a specific OutpostARN type +// +// Currently supported outpost ARN formats: +// * Outpost AccessPoint ARN format: +// - ARN format: arn:{partition}:s3-outposts:{region}:{accountId}:outpost/{outpostId}/accesspoint/{accesspointName} +// - example: arn:aws:s3-outposts:us-west-2:012345678901:outpost/op-1234567890123456/accesspoint/myaccesspoint +// +// * Outpost Bucket ARN format: +// - ARN format: arn:{partition}:s3-outposts:{region}:{accountId}:outpost/{outpostId}/bucket/{bucketName} +// - example: arn:aws:s3-outposts:us-west-2:012345678901:outpost/op-1234567890123456/bucket/mybucket +// +// Other outpost ARN formats may be supported and added in the future. +// +func ParseOutpostARNResource(a arn.ARN, resParts []string) (OutpostARN, error) { + if len(a.Region) == 0 { + return nil, InvalidARNError{ARN: a, Reason: "region not set"} + } + + if len(a.AccountID) == 0 { + return nil, InvalidARNError{ARN: a, Reason: "account-id not set"} + } + + // verify if outpost id is present and valid + if len(resParts) == 0 || len(strings.TrimSpace(resParts[0])) == 0 { + return nil, InvalidARNError{ARN: a, Reason: "outpost resource-id not set"} + } + + // verify possible resource type exists + if len(resParts) < 3 { + return nil, InvalidARNError{ + ARN: a, Reason: "incomplete outpost resource type. Expected bucket or access-point resource to be present", + } + } + + // Since we know this is a OutpostARN fetch outpostID + outpostID := strings.TrimSpace(resParts[0]) + + switch resParts[1] { + case "accesspoint": + accesspointARN, err := ParseAccessPointResource(a, resParts[2:]) + if err != nil { + return OutpostAccessPointARN{}, err + } + return OutpostAccessPointARN{ + AccessPointARN: accesspointARN, + OutpostID: outpostID, + }, nil + + case "bucket": + bucketName, err := parseBucketResource(a, resParts[2:]) + if err != nil { + return nil, err + } + return OutpostBucketARN{ + ARN: a, + BucketName: bucketName, + OutpostID: outpostID, + }, nil + + default: + return nil, InvalidARNError{ARN: a, Reason: "unknown resource set for outpost ARN"} + } +} + +// OutpostAccessPointARN represents outpost access point ARN. +type OutpostAccessPointARN struct { + AccessPointARN + OutpostID string +} + +// GetOutpostID returns the outpost id of outpost access point arn +func (o OutpostAccessPointARN) GetOutpostID() string { + return o.OutpostID +} + +// OutpostBucketARN represents the outpost bucket ARN. +type OutpostBucketARN struct { + arn.ARN + BucketName string + OutpostID string +} + +// GetOutpostID returns the outpost id of outpost bucket arn +func (o OutpostBucketARN) GetOutpostID() string { + return o.OutpostID +} + +// GetARN retrives the base ARN from outpost bucket ARN resource +func (o OutpostBucketARN) GetARN() arn.ARN { + return o.ARN +} + +// parseBucketResource attempts to parse the ARN's bucket resource and retrieve the +// bucket resource id. +// +// parseBucketResource only parses the bucket resource id. +// +func parseBucketResource(a arn.ARN, resParts []string) (bucketName string, err error) { + if len(resParts) == 0 { + return bucketName, InvalidARNError{ARN: a, Reason: "bucket resource-id not set"} + } + if len(resParts) > 1 { + return bucketName, InvalidARNError{ARN: a, Reason: "sub resource not supported"} + } + + bucketName = strings.TrimSpace(resParts[0]) + if len(bucketName) == 0 { + return bucketName, InvalidARNError{ARN: a, Reason: "bucket resource-id not set"} + } + return bucketName, err +} diff --git a/internal/s3shared/arn/outpost_arn_test.go b/internal/s3shared/arn/outpost_arn_test.go new file mode 100644 index 00000000000..3a0094366ef --- /dev/null +++ b/internal/s3shared/arn/outpost_arn_test.go @@ -0,0 +1,273 @@ +// +build go1.7 + +package arn + +import ( + "reflect" + "strings" + "testing" + + "github.com/aws/aws-sdk-go/aws/arn" +) + +func TestParseOutpostAccessPointARNResource(t *testing.T) { + cases := map[string]struct { + ARN arn.ARN + ExpectErr string + ExpectARN OutpostAccessPointARN + }{ + "region not set": { + ARN: arn.ARN{ + Partition: "aws", + Service: "s3-outposts", + AccountID: "012345678901", + Resource: "outpost/myoutpost/accesspoint/myendpoint", + }, + ExpectErr: "region not set", + }, + "account-id not set": { + ARN: arn.ARN{ + Partition: "aws", + Service: "s3-outposts", + Region: "us-west-2", + Resource: "outpost/myoutpost/accesspoint/myendpoint", + }, + ExpectErr: "account-id not set", + }, + "resource-id not set": { + ARN: arn.ARN{ + Partition: "aws", + Service: "s3-outposts", + Region: "us-west-2", + AccountID: "012345678901", + Resource: "myoutpost", + }, + ExpectErr: "resource-id not set", + }, + "resource-id empty": { + ARN: arn.ARN{ + Partition: "aws", + Service: "s3-outposts", + Region: "us-west-2", + AccountID: "012345678901", + Resource: "outpost:", + }, + ExpectErr: "resource-id not set", + }, + "resource not supported": { + ARN: arn.ARN{ + Partition: "aws", + Service: "s3-outposts", + Region: "us-west-2", + AccountID: "012345678901", + Resource: "outpost/myoutpost/accesspoint/endpoint/object/key", + }, + ExpectErr: "sub resource not supported", + }, + "access-point not defined": { + ARN: arn.ARN{ + Partition: "aws", + Service: "s3-outposts", + Region: "us-west-2", + AccountID: "012345678901", + Resource: "outpost/myoutpost/endpoint/object/key", + }, + ExpectErr: "unknown resource set for outpost ARN", + }, + "valid resource-id": { + ARN: arn.ARN{ + Partition: "aws", + Service: "s3-outposts", + Region: "us-west-2", + AccountID: "012345678901", + Resource: "outpost/myoutpost/accesspoint/myaccesspoint", + }, + ExpectARN: OutpostAccessPointARN{ + AccessPointARN: AccessPointARN{ + ARN: arn.ARN{ + Partition: "aws", + Service: "s3-outposts", + Region: "us-west-2", + AccountID: "012345678901", + Resource: "outpost/myoutpost/accesspoint/myaccesspoint", + }, + AccessPointName: "myaccesspoint", + }, + OutpostID: "myoutpost", + }, + }, + } + + for name, c := range cases { + t.Run(name, func(t *testing.T) { + resParts := SplitResource(c.ARN.Resource) + a, err := ParseOutpostARNResource(c.ARN, resParts[1:]) + + if len(c.ExpectErr) == 0 && err != nil { + t.Fatalf("expect no error but got %v", err) + } else if len(c.ExpectErr) != 0 && err == nil { + t.Fatalf("expect error %q, but got nil", c.ExpectErr) + } else if len(c.ExpectErr) != 0 && err != nil { + if e, a := c.ExpectErr, err.Error(); !strings.Contains(a, e) { + t.Fatalf("expect error %q, got %q", e, a) + } + return + } + + if e, a := c.ExpectARN, a; !reflect.DeepEqual(e, a) { + t.Errorf("expect %v, got %v", e, a) + } + }) + } +} + +func TestParseOutpostBucketARNResource(t *testing.T) { + cases := map[string]struct { + ARN arn.ARN + ExpectErr string + ExpectARN OutpostBucketARN + }{ + "region not set": { + ARN: arn.ARN{ + Partition: "aws", + Service: "s3-outposts", + AccountID: "012345678901", + Resource: "outpost/myoutpost/bucket/mybucket", + }, + ExpectErr: "region not set", + }, + "resource-id empty": { + ARN: arn.ARN{ + Partition: "aws", + Service: "s3-outposts", + Region: "us-west-2", + AccountID: "012345678901", + Resource: "outpost:", + }, + ExpectErr: "resource-id not set", + }, + "resource not supported": { + ARN: arn.ARN{ + Partition: "aws", + Service: "s3-outposts", + Region: "us-west-2", + AccountID: "012345678901", + Resource: "outpost/myoutpost/bucket/mybucket/object/key", + }, + ExpectErr: "sub resource not supported", + }, + "bucket not defined": { + ARN: arn.ARN{ + Partition: "aws", + Service: "s3-outposts", + Region: "us-west-2", + AccountID: "012345678901", + Resource: "outpost/myoutpost/endpoint/object/key", + }, + ExpectErr: "unknown resource set for outpost ARN", + }, + "valid resource-id": { + ARN: arn.ARN{ + Partition: "aws", + Service: "s3-outposts", + Region: "us-west-2", + AccountID: "012345678901", + Resource: "outpost/myoutpost/bucket/mybucket", + }, + ExpectARN: OutpostBucketARN{ + ARN: arn.ARN{ + Partition: "aws", + Service: "s3-outposts", + Region: "us-west-2", + AccountID: "012345678901", + Resource: "outpost/myoutpost/bucket/mybucket", + }, + BucketName: "mybucket", + OutpostID: "myoutpost", + }, + }, + } + + for name, c := range cases { + t.Run(name, func(t *testing.T) { + resParts := SplitResource(c.ARN.Resource) + a, err := ParseOutpostARNResource(c.ARN, resParts[1:]) + + if len(c.ExpectErr) == 0 && err != nil { + t.Fatalf("expect no error but got %v", err) + } else if len(c.ExpectErr) != 0 && err == nil { + t.Fatalf("expect error %q, but got nil", c.ExpectErr) + } else if len(c.ExpectErr) != 0 && err != nil { + if e, a := c.ExpectErr, err.Error(); !strings.Contains(a, e) { + t.Fatalf("expect error %q, got %q", e, a) + } + return + } + + if e, a := c.ExpectARN, a; !reflect.DeepEqual(e, a) { + t.Errorf("expect %v, got %v", e, a) + } + }) + } +} + +func TestParseBucketResource(t *testing.T) { + cases := map[string]struct { + ARN arn.ARN + ExpectErr string + ExpectBucketName string + }{ + "resource-id empty": { + ARN: arn.ARN{ + Partition: "aws", + Service: "s3", + Region: "us-west-2", + AccountID: "012345678901", + Resource: "bucket:", + }, + ExpectErr: "bucket resource-id not set", + }, + "resource not supported": { + ARN: arn.ARN{ + Partition: "aws", + Service: "s3", + Region: "us-west-2", + AccountID: "012345678901", + Resource: "bucket/mybucket/object/key", + }, + ExpectErr: "sub resource not supported", + }, + "valid resource-id": { + ARN: arn.ARN{ + Partition: "aws", + Service: "s3", + Region: "us-west-2", + AccountID: "012345678901", + Resource: "bucket/mybucket", + }, + ExpectBucketName: "mybucket", + }, + } + + for name, c := range cases { + t.Run(name, func(t *testing.T) { + resParts := SplitResource(c.ARN.Resource) + a, err := parseBucketResource(c.ARN, resParts[1:]) + + if len(c.ExpectErr) == 0 && err != nil { + t.Fatalf("expect no error but got %v", err) + } else if len(c.ExpectErr) != 0 && err == nil { + t.Fatalf("expect error %q, but got nil", c.ExpectErr) + } else if len(c.ExpectErr) != 0 && err != nil { + if e, a := c.ExpectErr, err.Error(); !strings.Contains(a, e) { + t.Fatalf("expect error %q, got %q", e, a) + } + return + } + + if e, a := c.ExpectBucketName, a; !reflect.DeepEqual(e, a) { + t.Errorf("expect %v, got %v", e, a) + } + }) + } +} diff --git a/internal/s3shared/endpoint_errors.go b/internal/s3shared/endpoint_errors.go new file mode 100644 index 00000000000..e756b2f8733 --- /dev/null +++ b/internal/s3shared/endpoint_errors.go @@ -0,0 +1,189 @@ +package s3shared + +import ( + "fmt" + + "github.com/aws/aws-sdk-go/aws/awserr" + "github.com/aws/aws-sdk-go/internal/s3shared/arn" +) + +const ( + invalidARNErrorErrCode = "InvalidARNError" + configurationErrorErrCode = "ConfigurationError" +) + +// InvalidARNError denotes the error for Invalid ARN +type InvalidARNError struct { + message string + resource arn.Resource + origErr error +} + +// Error returns the InvalidARNError +func (e InvalidARNError) Error() string { + var extra string + if e.resource != nil { + extra = "ARN: " + e.resource.String() + } + return awserr.SprintError(e.Code(), e.Message(), extra, e.origErr) +} + +// Code returns the invalid ARN error code +func (e InvalidARNError) Code() string { + return invalidARNErrorErrCode +} + +// Message returns the message for Invalid ARN error +func (e InvalidARNError) Message() string { + return e.message +} + +// OrigErr is the original error wrapped by Invalid ARN Error +func (e InvalidARNError) OrigErr() error { + return e.origErr +} + +// NewInvalidARNError denotes invalid arn error +func NewInvalidARNError(resource arn.Resource, err error) InvalidARNError { + return InvalidARNError{ + message: "invalid ARN", + origErr: err, + resource: resource, + } +} + +// NewInvalidARNWithCustomEndpointError ARN not supported for custom clients endpoints +func NewInvalidARNWithCustomEndpointError(resource arn.Resource, err error) InvalidARNError { + return InvalidARNError{ + message: "resource ARN not supported with custom client endpoints", + origErr: err, + resource: resource, + } +} + +// NewInvalidARNWithUnsupportedPartitionError ARN not supported for the target partition +func NewInvalidARNWithUnsupportedPartitionError(resource arn.Resource, err error) InvalidARNError { + return InvalidARNError{ + message: "resource ARN not supported for the target ARN partition", + origErr: err, + resource: resource, + } +} + +// NewInvalidARNWithFIPSError ARN not supported for FIPS region +func NewInvalidARNWithFIPSError(resource arn.Resource, err error) InvalidARNError { + return InvalidARNError{ + message: "resource ARN not supported for FIPS region", + resource: resource, + origErr: err, + } +} + +// ConfigurationError is used to denote a client configuration error +type ConfigurationError struct { + message string + resource arn.Resource + clientPartitionID string + clientRegion string + origErr error +} + +// Error returns the Configuration error string +func (e ConfigurationError) Error() string { + extra := fmt.Sprintf("ARN: %s, client partition: %s, client region: %s", + e.resource, e.clientPartitionID, e.clientRegion) + + return awserr.SprintError(e.Code(), e.Message(), extra, e.origErr) +} + +// Code returns configuration error's error-code +func (e ConfigurationError) Code() string { + return configurationErrorErrCode +} + +// Message returns the configuration error message +func (e ConfigurationError) Message() string { + return e.message +} + +// OrigErr is the original error wrapped by Configuration Error +func (e ConfigurationError) OrigErr() error { + return e.origErr +} + +// NewClientPartitionMismatchError stub +func NewClientPartitionMismatchError(resource arn.Resource, clientPartitionID, clientRegion string, err error) ConfigurationError { + return ConfigurationError{ + message: "client partition does not match provided ARN partition", + origErr: err, + resource: resource, + clientPartitionID: clientPartitionID, + clientRegion: clientRegion, + } +} + +// NewClientRegionMismatchError denotes cross region access error +func NewClientRegionMismatchError(resource arn.Resource, clientPartitionID, clientRegion string, err error) ConfigurationError { + return ConfigurationError{ + message: "client region does not match provided ARN region", + origErr: err, + resource: resource, + clientPartitionID: clientPartitionID, + clientRegion: clientRegion, + } +} + +// NewFailedToResolveEndpointError denotes endpoint resolving error +func NewFailedToResolveEndpointError(resource arn.Resource, clientPartitionID, clientRegion string, err error) ConfigurationError { + return ConfigurationError{ + message: "endpoint resolver failed to find an endpoint for the provided ARN region", + origErr: err, + resource: resource, + clientPartitionID: clientPartitionID, + clientRegion: clientRegion, + } +} + +// NewClientConfiguredForFIPSError denotes client config error for unsupported cross region FIPS access +func NewClientConfiguredForFIPSError(resource arn.Resource, clientPartitionID, clientRegion string, err error) ConfigurationError { + return ConfigurationError{ + message: "client configured for fips but cross-region resource ARN provided", + origErr: err, + resource: resource, + clientPartitionID: clientPartitionID, + clientRegion: clientRegion, + } +} + +// NewClientConfiguredForAccelerateError denotes client config error for unsupported S3 accelerate +func NewClientConfiguredForAccelerateError(resource arn.Resource, clientPartitionID, clientRegion string, err error) ConfigurationError { + return ConfigurationError{ + message: "client configured for S3 Accelerate but is not supported with resource ARN", + origErr: err, + resource: resource, + clientPartitionID: clientPartitionID, + clientRegion: clientRegion, + } +} + +// NewClientConfiguredForCrossRegionFIPSError denotes client config error for unsupported cross region FIPS request +func NewClientConfiguredForCrossRegionFIPSError(resource arn.Resource, clientPartitionID, clientRegion string, err error) ConfigurationError { + return ConfigurationError{ + message: "client configured for FIPS with cross-region enabled but is supported with cross-region resource ARN", + origErr: err, + resource: resource, + clientPartitionID: clientPartitionID, + clientRegion: clientRegion, + } +} + +// NewClientConfiguredForDualStackError denotes client config error for unsupported S3 Dual-stack +func NewClientConfiguredForDualStackError(resource arn.Resource, clientPartitionID, clientRegion string, err error) ConfigurationError { + return ConfigurationError{ + message: "client configured for S3 Dual-stack but is not supported with resource ARN", + origErr: err, + resource: resource, + clientPartitionID: clientPartitionID, + clientRegion: clientRegion, + } +} diff --git a/internal/s3shared/resource_request.go b/internal/s3shared/resource_request.go new file mode 100644 index 00000000000..9f70a64ecff --- /dev/null +++ b/internal/s3shared/resource_request.go @@ -0,0 +1,62 @@ +package s3shared + +import ( + "strings" + + "github.com/aws/aws-sdk-go/aws" + awsarn "github.com/aws/aws-sdk-go/aws/arn" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/internal/s3shared/arn" +) + +// ResourceRequest represents the request and arn resource +type ResourceRequest struct { + Resource arn.Resource + Request *request.Request +} + +// ARN returns the resource ARN +func (r ResourceRequest) ARN() awsarn.ARN { + return r.Resource.GetARN() +} + +// AllowCrossRegion returns a bool value to denote if S3UseARNRegion flag is set +func (r ResourceRequest) AllowCrossRegion() bool { + return aws.BoolValue(r.Request.Config.S3UseARNRegion) +} + +// UseFIPS returns true if request config region is FIPS +func (r ResourceRequest) UseFIPS() bool { + return IsFIPS(aws.StringValue(r.Request.Config.Region)) +} + +// ResourceConfiguredForFIPS returns true if resource ARNs region is FIPS +func (r ResourceRequest) ResourceConfiguredForFIPS() bool { + return IsFIPS(r.ARN().Region) +} + +// IsCrossPartition returns true if client is configured for another partition, than +// the partition that resource ARN region resolves to. +func (r ResourceRequest) IsCrossPartition() bool { + return r.Request.ClientInfo.PartitionID != r.Resource.GetARN().Partition +} + +// IsCrossRegion returns true if ARN region is different than client configured region +func (r ResourceRequest) IsCrossRegion() bool { + return IsCrossRegion(r.Request, r.Resource.GetARN().Region) +} + +// HasCustomEndpoint returns true if custom client endpoint is provided +func (r ResourceRequest) HasCustomEndpoint() bool { + return len(aws.StringValue(r.Request.Config.Endpoint)) > 0 +} + +// IsFIPS returns true if region is a fips region +func IsFIPS(clientRegion string) bool { + return strings.HasPrefix(clientRegion, "fips-") || strings.HasSuffix(clientRegion, "-fips") +} + +// IsCrossRegion returns true if request signing region is not same as configured region +func IsCrossRegion(req *request.Request, otherRegion string) bool { + return req.ClientInfo.SigningRegion != otherRegion +} diff --git a/internal/s3err/error.go b/internal/s3shared/s3err/error.go similarity index 100% rename from internal/s3err/error.go rename to internal/s3shared/s3err/error.go diff --git a/models/apis/application-autoscaling/2016-02-06/api-2.json b/models/apis/application-autoscaling/2016-02-06/api-2.json index 602076d9bdd..37eeea3e950 100644 --- a/models/apis/application-autoscaling/2016-02-06/api-2.json +++ b/models/apis/application-autoscaling/2016-02-06/api-2.json @@ -434,7 +434,8 @@ "ComprehendInferenceUtilization", "LambdaProvisionedConcurrencyUtilization", "CassandraReadCapacityUtilization", - "CassandraWriteCapacityUtilization" + "CassandraWriteCapacityUtilization", + "KafkaBrokerStorageUtilization" ] }, "MetricUnit":{"type":"string"}, @@ -577,7 +578,8 @@ "comprehend:entity-recognizer-endpoint:DesiredInferenceUnits", "lambda:function:ProvisionedConcurrency", "cassandra:table:ReadCapacityUnits", - "cassandra:table:WriteCapacityUnits" + "cassandra:table:WriteCapacityUnits", + "kafka:broker-storage:VolumeSize" ] }, "ScalableTarget":{ @@ -730,7 +732,8 @@ "custom-resource", "comprehend", "lambda", - "cassandra" + "cassandra", + "kafka" ] }, "StepAdjustment":{ diff --git a/models/apis/application-autoscaling/2016-02-06/docs-2.json b/models/apis/application-autoscaling/2016-02-06/docs-2.json index 805d58ea3ad..9f8a8492aa2 100644 --- a/models/apis/application-autoscaling/2016-02-06/docs-2.json +++ b/models/apis/application-autoscaling/2016-02-06/docs-2.json @@ -1,6 +1,6 @@ { "version": "2.0", - "service": "

With Application Auto Scaling, you can configure automatic scaling for the following resources:

API Summary

The Application Auto Scaling service API includes three key sets of actions:

To learn more about Application Auto Scaling, including information about granting IAM users required permissions for Application Auto Scaling actions, see the Application Auto Scaling User Guide.

", + "service": "

With Application Auto Scaling, you can configure automatic scaling for the following resources:

API Summary

The Application Auto Scaling service API includes three key sets of actions:

To learn more about Application Auto Scaling, including information about granting IAM users required permissions for Application Auto Scaling actions, see the Application Auto Scaling User Guide.

", "operations": { "DeleteScalingPolicy": "

Deletes the specified scaling policy for an Application Auto Scaling scalable target.

Deleting a step scaling policy deletes the underlying alarm action, but does not delete the CloudWatch alarm associated with the scaling policy, even if it no longer has an associated action.

For more information, see Delete a Step Scaling Policy and Delete a Target Tracking Scaling Policy in the Application Auto Scaling User Guide.

", "DeleteScheduledAction": "

Deletes the specified scheduled action for an Application Auto Scaling scalable target.

For more information, see Delete a Scheduled Action in the Application Auto Scaling User Guide.

", @@ -41,9 +41,9 @@ "Cooldown": { "base": null, "refs": { - "StepScalingPolicyConfiguration$Cooldown": "

The amount of time, in seconds, to wait for a previous scaling activity to take effect.

With scale-out policies, the intention is to continuously (but not excessively) scale out. After Application Auto Scaling successfully scales out using a step scaling policy, it starts to calculate the cooldown time. While the cooldown period is in effect, capacity added by the initiating scale-out activity is calculated as part of the desired capacity for the next scale-out activity. For example, when an alarm triggers a step scaling policy to increase the capacity by 2, the scaling activity completes successfully, and a cooldown period starts. If the alarm triggers again during the cooldown period but at a more aggressive step adjustment of 3, the previous increase of 2 is considered part of the current capacity. Therefore, only 1 is added to the capacity.

With scale-in policies, the intention is to scale in conservatively to protect your application’s availability, so scale-in activities are blocked until the cooldown period has expired. However, if another alarm triggers a scale-out activity during the cooldown period after a scale-in activity, Application Auto Scaling scales out the target immediately. In this case, the cooldown period for the scale-in activity stops and doesn't complete.

Application Auto Scaling provides a default value of 300 for the following scalable targets:

For all other scalable targets, the default value is 0:

", - "TargetTrackingScalingPolicyConfiguration$ScaleOutCooldown": "

The amount of time, in seconds, to wait for a previous scale-out activity to take effect.

With the scale-out cooldown period, the intention is to continuously (but not excessively) scale out. After Application Auto Scaling successfully scales out using a target tracking scaling policy, it starts to calculate the cooldown time. While the scale-out cooldown period is in effect, the capacity added by the initiating scale-out activity is calculated as part of the desired capacity for the next scale-out activity.

Application Auto Scaling provides a default value of 300 for the following scalable targets:

For all other scalable targets, the default value is 0:

", - "TargetTrackingScalingPolicyConfiguration$ScaleInCooldown": "

The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start.

With the scale-in cooldown period, the intention is to scale in conservatively to protect your application’s availability, so scale-in activities are blocked until the cooldown period has expired. However, if another alarm triggers a scale-out activity during the scale-in cooldown period, Application Auto Scaling scales out the target immediately. In this case, the scale-in cooldown period stops and doesn't complete.

Application Auto Scaling provides a default value of 300 for the following scalable targets:

For all other scalable targets, the default value is 0:

" + "StepScalingPolicyConfiguration$Cooldown": "

The amount of time, in seconds, to wait for a previous scaling activity to take effect.

With scale-out policies, the intention is to continuously (but not excessively) scale out. After Application Auto Scaling successfully scales out using a step scaling policy, it starts to calculate the cooldown time. The scaling policy won't increase the desired capacity again unless either a larger scale out is triggered or the cooldown period ends. While the cooldown period is in effect, capacity added by the initiating scale-out activity is calculated as part of the desired capacity for the next scale-out activity. For example, when an alarm triggers a step scaling policy to increase the capacity by 2, the scaling activity completes successfully, and a cooldown period starts. If the alarm triggers again during the cooldown period but at a more aggressive step adjustment of 3, the previous increase of 2 is considered part of the current capacity. Therefore, only 1 is added to the capacity.

With scale-in policies, the intention is to scale in conservatively to protect your application’s availability, so scale-in activities are blocked until the cooldown period has expired. However, if another alarm triggers a scale-out activity during the cooldown period after a scale-in activity, Application Auto Scaling scales out the target immediately. In this case, the cooldown period for the scale-in activity stops and doesn't complete.

Application Auto Scaling provides a default value of 300 for the following scalable targets:

For all other scalable targets, the default value is 0:

", + "TargetTrackingScalingPolicyConfiguration$ScaleOutCooldown": "

The amount of time, in seconds, to wait for a previous scale-out activity to take effect.

With the scale-out cooldown period, the intention is to continuously (but not excessively) scale out. After Application Auto Scaling successfully scales out using a target tracking scaling policy, it starts to calculate the cooldown time. The scaling policy won't increase the desired capacity again unless either a larger scale out is triggered or the cooldown period ends. While the cooldown period is in effect, the capacity added by the initiating scale-out activity is calculated as part of the desired capacity for the next scale-out activity.

Application Auto Scaling provides a default value of 300 for the following scalable targets:

For all other scalable targets, the default value is 0:

", + "TargetTrackingScalingPolicyConfiguration$ScaleInCooldown": "

The amount of time, in seconds, after a scale-in activity completes before another scale-in activity can start.

With the scale-in cooldown period, the intention is to scale in conservatively to protect your application’s availability, so scale-in activities are blocked until the cooldown period has expired. However, if another alarm triggers a scale-out activity during the scale-in cooldown period, Application Auto Scaling scales out the target immediately. In this case, the scale-in cooldown period stops and doesn't complete.

Application Auto Scaling provides a default value of 300 for the following scalable targets:

For all other scalable targets, the default value is 0:

" } }, "CustomizedMetricSpecification": { @@ -258,7 +258,7 @@ "PolicyType": { "base": null, "refs": { - "PutScalingPolicyRequest$PolicyType": "

The policy type. This parameter is required if you are creating a scaling policy.

The following policy types are supported:

TargetTrackingScaling—Not supported for Amazon EMR

StepScaling—Not supported for DynamoDB, Amazon Comprehend, Lambda, or Amazon Keyspaces (for Apache Cassandra).

For more information, see Target Tracking Scaling Policies and Step Scaling Policies in the Application Auto Scaling User Guide.

", + "PutScalingPolicyRequest$PolicyType": "

The policy type. This parameter is required if you are creating a scaling policy.

The following policy types are supported:

TargetTrackingScaling—Not supported for Amazon EMR

StepScaling—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces (for Apache Cassandra), or Amazon MSK.

For more information, see Target Tracking Scaling Policies and Step Scaling Policies in the Application Auto Scaling User Guide.

", "ScalingPolicy$PolicyType": "

The scaling policy type.

" } }, @@ -321,34 +321,34 @@ "base": null, "refs": { "DeleteScalingPolicyRequest$PolicyName": "

The name of the scaling policy.

", - "DeleteScalingPolicyRequest$ResourceId": "

The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier.

", + "DeleteScalingPolicyRequest$ResourceId": "

The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier.

", "DeleteScheduledActionRequest$ScheduledActionName": "

The name of the scheduled action.

", - "DeleteScheduledActionRequest$ResourceId": "

The identifier of the resource associated with the scheduled action. This string consists of the resource type and unique identifier.

", - "DeregisterScalableTargetRequest$ResourceId": "

The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier.

", - "DescribeScalingActivitiesRequest$ResourceId": "

The identifier of the resource associated with the scaling activity. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID.

", - "DescribeScalingPoliciesRequest$ResourceId": "

The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID.

", - "DescribeScheduledActionsRequest$ResourceId": "

The identifier of the resource associated with the scheduled action. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID.

", - "PutScalingPolicyRequest$ResourceId": "

The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.

", + "DeleteScheduledActionRequest$ResourceId": "

The identifier of the resource associated with the scheduled action. This string consists of the resource type and unique identifier.

", + "DeregisterScalableTargetRequest$ResourceId": "

The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier.

", + "DescribeScalingActivitiesRequest$ResourceId": "

The identifier of the resource associated with the scaling activity. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID.

", + "DescribeScalingPoliciesRequest$ResourceId": "

The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID.

", + "DescribeScheduledActionsRequest$ResourceId": "

The identifier of the resource associated with the scheduled action. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID.

", + "PutScalingPolicyRequest$ResourceId": "

The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.

", "PutScalingPolicyResponse$PolicyARN": "

The Amazon Resource Name (ARN) of the resulting scaling policy.

", "PutScheduledActionRequest$Schedule": "

The schedule for this action. The following formats are supported:

At expressions are useful for one-time schedules. Specify the time in UTC.

For rate expressions, value is a positive integer and unit is minute | minutes | hour | hours | day | days.

For more information about cron expressions, see Cron Expressions in the Amazon CloudWatch Events User Guide.

For examples of using these expressions, see Scheduled Scaling in the Application Auto Scaling User Guide.

", - "PutScheduledActionRequest$ResourceId": "

The identifier of the resource associated with the scheduled action. This string consists of the resource type and unique identifier.

", - "RegisterScalableTargetRequest$ResourceId": "

The identifier of the resource that is associated with the scalable target. This string consists of the resource type and unique identifier.

", + "PutScheduledActionRequest$ResourceId": "

The identifier of the resource associated with the scheduled action. This string consists of the resource type and unique identifier.

", + "RegisterScalableTargetRequest$ResourceId": "

The identifier of the resource that is associated with the scalable target. This string consists of the resource type and unique identifier.

", "RegisterScalableTargetRequest$RoleARN": "

This parameter is required for services that do not support service-linked roles (such as Amazon EMR), and it must specify the ARN of an IAM role that allows Application Auto Scaling to modify the scalable target on your behalf.

If the service supports service-linked roles, Application Auto Scaling uses a service-linked role, which it creates if it does not yet exist. For more information, see Application Auto Scaling IAM Roles.

", "ResourceIdsMaxLen1600$member": null, - "ScalableTarget$ResourceId": "

The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier.

", + "ScalableTarget$ResourceId": "

The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier.

", "ScalableTarget$RoleARN": "

The ARN of an IAM role that allows Application Auto Scaling to modify the scalable target on your behalf.

", - "ScalingActivity$ResourceId": "

The identifier of the resource associated with the scaling activity. This string consists of the resource type and unique identifier.

", + "ScalingActivity$ResourceId": "

The identifier of the resource associated with the scaling activity. This string consists of the resource type and unique identifier.

", "ScalingPolicy$PolicyARN": "

The Amazon Resource Name (ARN) of the scaling policy.

", - "ScalingPolicy$ResourceId": "

The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.

", + "ScalingPolicy$ResourceId": "

The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.

", "ScheduledAction$ScheduledActionARN": "

The Amazon Resource Name (ARN) of the scheduled action.

", "ScheduledAction$Schedule": "

The schedule for this action. The following formats are supported:

At expressions are useful for one-time schedules. Specify the time in UTC.

For rate expressions, value is a positive integer and unit is minute | minutes | hour | hours | day | days.

For more information about cron expressions, see Cron Expressions in the Amazon CloudWatch Events User Guide.

For examples of using these expressions, see Scheduled Scaling in the Application Auto Scaling User Guide.

", - "ScheduledAction$ResourceId": "

The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.

" + "ScheduledAction$ResourceId": "

The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.

" } }, "ResourceIdsMaxLen1600": { "base": null, "refs": { - "DescribeScalableTargetsRequest$ResourceIds": "

The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID.

", + "DescribeScalableTargetsRequest$ResourceIds": "

The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier. If you specify a scalable dimension, you must also specify a resource ID.

", "DescribeScalingPoliciesRequest$PolicyNames": "

The names of the scaling policies to describe.

", "DescribeScheduledActionsRequest$ScheduledActionNames": "

The names of the scheduled actions to describe.

" } @@ -362,20 +362,20 @@ "ScalableDimension": { "base": null, "refs": { - "DeleteScalingPolicyRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", - "DeleteScheduledActionRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", - "DeregisterScalableTargetRequest$ScalableDimension": "

The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property.

", - "DescribeScalableTargetsRequest$ScalableDimension": "

The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID.

", - "DescribeScalingActivitiesRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID.

", - "DescribeScalingPoliciesRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID.

", - "DescribeScheduledActionsRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID.

", - "PutScalingPolicyRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", - "PutScheduledActionRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", - "RegisterScalableTargetRequest$ScalableDimension": "

The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property.

", - "ScalableTarget$ScalableDimension": "

The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property.

", - "ScalingActivity$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", - "ScalingPolicy$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", - "ScheduledAction$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

" + "DeleteScalingPolicyRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", + "DeleteScheduledActionRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", + "DeregisterScalableTargetRequest$ScalableDimension": "

The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property.

", + "DescribeScalableTargetsRequest$ScalableDimension": "

The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID.

", + "DescribeScalingActivitiesRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID.

", + "DescribeScalingPoliciesRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID.

", + "DescribeScheduledActionsRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property. If you specify a scalable dimension, you must also specify a resource ID.

", + "PutScalingPolicyRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", + "PutScheduledActionRequest$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", + "RegisterScalableTargetRequest$ScalableDimension": "

The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property.

", + "ScalableTarget$ScalableDimension": "

The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property.

", + "ScalingActivity$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", + "ScalingPolicy$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

", + "ScheduledAction$ScalableDimension": "

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

" } }, "ScalableTarget": { @@ -428,7 +428,7 @@ } }, "ScalingPolicy": { - "base": "

Represents a scaling policy to use with Application Auto Scaling.

", + "base": "

Represents a scaling policy to use with Application Auto Scaling.

For more information about configuring scaling policies for a specific service, see Getting started with Application Auto Scaling in the Application Auto Scaling User Guide.

", "refs": { "ScalingPolicies$member": null } diff --git a/models/apis/datasync/2018-11-09/api-2.json b/models/apis/datasync/2018-11-09/api-2.json index 4eeaacc18d1..cbeb259576a 100644 --- a/models/apis/datasync/2018-11-09/api-2.json +++ b/models/apis/datasync/2018-11-09/api-2.json @@ -595,6 +595,7 @@ "S3BucketArn":{"shape":"S3BucketArn"}, "S3StorageClass":{"shape":"S3StorageClass"}, "S3Config":{"shape":"S3Config"}, + "AgentArns":{"shape":"AgentArnList"}, "Tags":{"shape":"InputTagList"} } }, @@ -792,6 +793,7 @@ "LocationUri":{"shape":"LocationUri"}, "S3StorageClass":{"shape":"S3StorageClass"}, "S3Config":{"shape":"S3Config"}, + "AgentArns":{"shape":"AgentArnList"}, "CreationTime":{"shape":"Time"} } }, @@ -1318,8 +1320,8 @@ }, "S3BucketArn":{ "type":"string", - "max":76, - "pattern":"^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):s3:::([^/]*)$" + "max":156, + "pattern":"^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):(s3|s3-outposts):[a-z\\-0-9]*:[0-9]*:.*$" }, "S3Config":{ "type":"structure", @@ -1336,7 +1338,8 @@ "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", - "DEEP_ARCHIVE" + "DEEP_ARCHIVE", + "OUTPOSTS" ] }, "S3Subdirectory":{ diff --git a/models/apis/datasync/2018-11-09/docs-2.json b/models/apis/datasync/2018-11-09/docs-2.json index b988e9a5b42..9adab00d452 100644 --- a/models/apis/datasync/2018-11-09/docs-2.json +++ b/models/apis/datasync/2018-11-09/docs-2.json @@ -3,14 +3,14 @@ "service": "AWS DataSync

AWS DataSync is a managed data transfer service that makes it simpler for you to automate moving data between on-premises storage and Amazon Simple Storage Service (Amazon S3) or Amazon Elastic File System (Amazon EFS).

This API interface reference for AWS DataSync contains documentation for a programming interface that you can use to manage AWS DataSync.

", "operations": { "CancelTaskExecution": "

Cancels execution of a task.

When you cancel a task execution, the transfer of some files is abruptly interrupted. The contents of files that are transferred to the destination might be incomplete or inconsistent with the source files. However, if you start a new task execution on the same task and you allow the task execution to complete, file content on the destination is complete and consistent. This applies to other unexpected failures that interrupt a task execution. In all of these cases, AWS DataSync successfully complete the transfer when you start the next task execution.

", - "CreateAgent": "

Activates an AWS DataSync agent that you have deployed on your host. The activation process associates your agent with your account. In the activation process, you specify information such as the AWS Region that you want to activate the agent in. You activate the agent in the AWS Region where your target locations (in Amazon S3 or Amazon EFS) reside. Your tasks are created in this AWS Region.

You can activate the agent in a VPC (virtual private cloud) or provide the agent access to a VPC endpoint so you can run tasks without going over the public Internet.

You can use an agent for more than one location. If a task uses multiple agents, all of them need to have status AVAILABLE for the task to run. If you use multiple agents for a source location, the status of all the agents must be AVAILABLE for the task to run.

Agents are automatically updated by AWS on a regular basis, using a mechanism that ensures minimal interruption to your tasks.

", + "CreateAgent": "

Activates an AWS DataSync agent that you have deployed on your host. The activation process associates your agent with your account. In the activation process, you specify information such as the AWS Region that you want to activate the agent in. You activate the agent in the AWS Region where your target locations (in Amazon S3 or Amazon EFS) reside. Your tasks are created in this AWS Region.

You can activate the agent in a VPC (virtual private cloud) or provide the agent access to a VPC endpoint so you can run tasks without going over the public internet.

You can use an agent for more than one location. If a task uses multiple agents, all of them need to have status AVAILABLE for the task to run. If you use multiple agents for a source location, the status of all the agents must be AVAILABLE for the task to run.

Agents are automatically updated by AWS on a regular basis, using a mechanism that ensures minimal interruption to your tasks.

", "CreateLocationEfs": "

Creates an endpoint for an Amazon EFS file system.

", "CreateLocationFsxWindows": "

Creates an endpoint for an Amazon FSx for Windows file system.

", "CreateLocationNfs": "

Defines a file system on a Network File System (NFS) server that can be read from or written to.

", - "CreateLocationObjectStorage": "

Creates an endpoint for a self-managed object storage bucket.

", - "CreateLocationS3": "

Creates an endpoint for an Amazon S3 bucket.

For AWS DataSync to access a destination S3 bucket, it needs an AWS Identity and Access Management (IAM) role that has the required permissions. You can set up the required permissions by creating an IAM policy that grants the required permissions and attaching the policy to the role. An example of such a policy is shown in the examples section.

For more information, see https://docs.aws.amazon.com/datasync/latest/userguide/working-with-locations.html#create-s3-location in the AWS DataSync User Guide.

", + "CreateLocationObjectStorage": "

Creates an endpoint for a self-managed object storage bucket. For more information about self-managed object storage locations, see create-object-location.

", + "CreateLocationS3": "

Creates an endpoint for an Amazon S3 bucket.

For more information, see https://docs.aws.amazon.com/datasync/latest/userguide/create-locations-cli.html#create-location-s3-cli in the AWS DataSync User Guide.

", "CreateLocationSmb": "

Defines a file system on a Server Message Block (SMB) server that can be read from or written to.

", - "CreateTask": "

Creates a task. A task is a set of two locations (source and destination) and a set of Options that you use to control the behavior of a task. If you don't specify Options when you create a task, AWS DataSync populates them with service defaults.

When you create a task, it first enters the CREATING state. During CREATING AWS DataSync attempts to mount the on-premises Network File System (NFS) location. The task transitions to the AVAILABLE state without waiting for the AWS location to become mounted. If required, AWS DataSync mounts the AWS location before each task execution.

If an agent that is associated with a source (NFS) location goes offline, the task transitions to the UNAVAILABLE status. If the status of the task remains in the CREATING status for more than a few minutes, it means that your agent might be having trouble mounting the source NFS file system. Check the task's ErrorCode and ErrorDetail. Mount issues are often caused by either a misconfigured firewall or a mistyped NFS server host name.

", + "CreateTask": "

Creates a task. A task is a set of two locations (source and destination) and a set of Options that you use to control the behavior of a task. If you don't specify Options when you create a task, AWS DataSync populates them with service defaults.

When you create a task, it first enters the CREATING state. During CREATING AWS DataSync attempts to mount the on-premises Network File System (NFS) location. The task transitions to the AVAILABLE state without waiting for the AWS location to become mounted. If required, AWS DataSync mounts the AWS location before each task execution.

If an agent that is associated with a source (NFS) location goes offline, the task transitions to the UNAVAILABLE status. If the status of the task remains in the CREATING status for more than a few minutes, it means that your agent might be having trouble mounting the source NFS file system. Check the task's ErrorCode and ErrorDetail. Mount issues are often caused by either a misconfigured firewall or a mistyped NFS server hostname.

", "DeleteAgent": "

Deletes an agent. To specify which agent to delete, use the Amazon Resource Name (ARN) of the agent in your request. The operation disassociates the agent from your AWS account. However, it doesn't delete the agent virtual machine (VM) from your on-premises environment.

", "DeleteLocation": "

Deletes the configuration of a location used by AWS DataSync.

", "DeleteTask": "

Deletes a task.

", @@ -18,7 +18,7 @@ "DescribeLocationEfs": "

Returns metadata, such as the path information about an Amazon EFS location.

", "DescribeLocationFsxWindows": "

Returns metadata, such as the path information about an Amazon FSx for Windows location.

", "DescribeLocationNfs": "

Returns metadata, such as the path information, about an NFS location.

", - "DescribeLocationObjectStorage": "

Returns metadata about a self-managed object storage server location.

", + "DescribeLocationObjectStorage": "

Returns metadata about a self-managed object storage server location. For more information about self-managed object storage locations, see create-object-location.

", "DescribeLocationS3": "

Returns metadata, such as bucket name, about an Amazon S3 bucket location.

", "DescribeLocationSmb": "

Returns metadata, such as the path and user information about an SMB location.

", "DescribeTask": "

Returns metadata about a task.

", @@ -57,10 +57,12 @@ "base": null, "refs": { "CreateLocationObjectStorageRequest$AgentArns": "

The Amazon Resource Name (ARN) of the agents associated with the self-managed object storage server location.

", + "CreateLocationS3Request$AgentArns": "

If you are using DataSync on an AWS Outpost, specify the Amazon Resource Names (ARNs) of the DataSync agents deployed on your AWS Outpost. For more information about launching a DataSync agent on an Amazon Outpost, see outposts-agent.

", "CreateLocationSmbRequest$AgentArns": "

The Amazon Resource Names (ARNs) of agents to use for a Simple Message Block (SMB) location.

", "DescribeLocationObjectStorageResponse$AgentArns": "

The Amazon Resource Name (ARN) of the agents associated with the self-managed object storage server location.

", + "DescribeLocationS3Response$AgentArns": "

If you are using DataSync on an Amazon Outpost, the Amazon Resource Name (ARNs) of the EC2 agents deployed on your AWS Outpost. For more information about launching a DataSync agent on an Amazon Outpost, see outposts-agent.

", "DescribeLocationSmbResponse$AgentArns": "

The Amazon Resource Name (ARN) of the source SMB file system location that is created.

", - "OnPremConfig$AgentArns": "

ARNs)of the agents to use for an NFS location.

" + "OnPremConfig$AgentArns": "

ARNs of the agents to use for an NFS location.

" } }, "AgentList": { @@ -410,8 +412,8 @@ "FilterValues": { "base": null, "refs": { - "LocationFilter$Values": null, - "TaskFilter$Values": null + "LocationFilter$Values": "

The values that you want to filter for. For example, you might want to display only Amazon S3 locations.

", + "TaskFilter$Values": "

The values that you want to filter for. For example, you might want to display only tasks for a specific destination location.

" } }, "FsxFilesystemArn": { @@ -533,7 +535,7 @@ "DescribeLocationObjectStorageRequest$LocationArn": "

The Amazon Resource Name (ARN) of the self-managed object storage server location that was described.

", "DescribeLocationObjectStorageResponse$LocationArn": "

The Amazon Resource Name (ARN) of the self-managed object storage server location to describe.

", "DescribeLocationS3Request$LocationArn": "

The Amazon Resource Name (ARN) of the Amazon S3 bucket location to describe.

", - "DescribeLocationS3Response$LocationArn": "

The Amazon Resource Name (ARN) of the Amazon S3 bucket location.

", + "DescribeLocationS3Response$LocationArn": "

The Amazon Resource Name (ARN) of the Amazon S3 bucket or access point.

", "DescribeLocationSmbRequest$LocationArn": "

The Amazon Resource Name (ARN) of the SMB location to describe.

", "DescribeLocationSmbResponse$LocationArn": "

The Amazon Resource Name (ARN) of the SMB location that was described.

", "DescribeTaskResponse$SourceLocationArn": "

The Amazon Resource Name (ARN) of the source file system's location.

", @@ -542,7 +544,7 @@ } }, "LocationFilter": { - "base": null, + "base": "

You can use API filters to narrow down the list of resources returned by ListLocations. For example, to retrieve all your Amazon S3 locations, you can use ListLocations with filter name LocationType S3 and Operator Equals.

", "refs": { "LocationFilters$member": null } @@ -550,13 +552,13 @@ "LocationFilterName": { "base": null, "refs": { - "LocationFilter$Name": null + "LocationFilter$Name": "

The name of the filter being used. Each API call supports a list of filters that are available for it (for example, LocationType for ListLocations).

" } }, "LocationFilters": { "base": null, "refs": { - "ListLocationsRequest$Filters": null + "ListLocationsRequest$Filters": "

You can use API filters to narrow down the list of resources returned by ListLocations. For example, to retrieve all tasks on a specific source location, you can use ListLocations with filter name LocationType S3 and Operator Equals.

" } }, "LocationList": { @@ -657,8 +659,8 @@ "ObjectStorageAccessKey": { "base": null, "refs": { - "CreateLocationObjectStorageRequest$AccessKey": "

Optional. The access key is used if credentials are required to access the self-managed object storage server.

", - "DescribeLocationObjectStorageResponse$AccessKey": "

Optional. The access key is used if credentials are required to access the self-managed object storage server.

" + "CreateLocationObjectStorageRequest$AccessKey": "

Optional. The access key is used if credentials are required to access the self-managed object storage server. If your object storage requires a user name and password to authenticate, use AccessKey and SecretKey to provide the user name and password, respectively.

", + "DescribeLocationObjectStorageResponse$AccessKey": "

Optional. The access key is used if credentials are required to access the self-managed object storage server. If your object storage requires a user name and password to authenticate, use AccessKey and SecretKey to provide the user name and password, respectively.

" } }, "ObjectStorageBucketName": { @@ -670,7 +672,7 @@ "ObjectStorageSecretKey": { "base": null, "refs": { - "CreateLocationObjectStorageRequest$SecretKey": "

Optional. The secret key is used if credentials are required to access the self-managed object storage server.

" + "CreateLocationObjectStorageRequest$SecretKey": "

Optional. The secret key is used if credentials are required to access the self-managed object storage server. If your object storage requires a user name and password to authenticate, use AccessKey and SecretKey to provide the user name and password, respectively.

" } }, "ObjectStorageServerPort": { @@ -697,8 +699,8 @@ "Operator": { "base": null, "refs": { - "LocationFilter$Operator": null, - "TaskFilter$Operator": null + "LocationFilter$Operator": "

The operator that is used to compare filter values (for example, Equals or Contains). For more about API filtering operators, see query-resources.

", + "TaskFilter$Operator": "

The operator that is used to compare filter values (for example, Equals or Contains). For more about API filtering operators, see query-resources.

" } }, "Options": { @@ -772,7 +774,7 @@ "S3BucketArn": { "base": null, "refs": { - "CreateLocationS3Request$S3BucketArn": "

The Amazon Resource Name (ARN) of the Amazon S3 bucket.

" + "CreateLocationS3Request$S3BucketArn": "

The Amazon Resource Name (ARN) of the Amazon S3 bucket. If the bucket is on an AWS Outpost, this must be an access point ARN.

" } }, "S3Config": { @@ -785,7 +787,7 @@ "S3StorageClass": { "base": null, "refs": { - "CreateLocationS3Request$S3StorageClass": "

The Amazon S3 storage class that you want to store your files in when this location is used as a task destination. For more information about S3 storage classes, see Amazon S3 Storage Classes in the Amazon Simple Storage Service Developer Guide. Some storage classes have behaviors that can affect your S3 storage cost. For detailed information, see using-storage-classes.

", + "CreateLocationS3Request$S3StorageClass": "

The Amazon S3 storage class that you want to store your files in when this location is used as a task destination. For buckets in AWS Regions, the storage class defaults to Standard. For buckets on AWS Outposts, the storage class defaults to AWS S3 Outposts.

For more information about S3 storage classes, see Amazon S3 Storage Classes in the Amazon Simple Storage Service Developer Guide. Some storage classes have behaviors that can affect your S3 storage cost. For detailed information, see using-storage-classes.

", "DescribeLocationS3Response$S3StorageClass": "

The Amazon S3 storage class that you chose to store your files in when this location is used as a task destination. For more information about S3 storage classes, see Amazon S3 Storage Classes in the Amazon Simple Storage Service Developer Guide. Some storage classes have behaviors that can affect your S3 storage cost. For detailed information, see using-storage-classes.

" } }, @@ -972,7 +974,7 @@ } }, "TaskFilter": { - "base": null, + "base": "

You can use API filters to narrow down the list of resources returned by ListTasks. For example, to retrieve all tasks on a source location, you can use ListTasks with filter name LocationId and Operator Equals with the ARN for the location.

", "refs": { "TaskFilters$member": null } @@ -980,13 +982,13 @@ "TaskFilterName": { "base": null, "refs": { - "TaskFilter$Name": null + "TaskFilter$Name": "

The name of the filter being used. Each API call supports a list of filters that are available for it. For example, LocationId for ListTasks.

" } }, "TaskFilters": { "base": null, "refs": { - "ListTasksRequest$Filters": null + "ListTasksRequest$Filters": "

You can use API filters to narrow down the list of resources returned by ListTasks. For example, to retrieve all tasks on a specific source location, you can use ListTasks with filter name LocationId and Operator Equals with the ARN for the location.

" } }, "TaskList": { @@ -1040,7 +1042,7 @@ "TransferMode": { "base": null, "refs": { - "Options$TransferMode": "

TransferMode has two values: CHANGED and ALL. CHANGED performs an \"incremental\" or \"delta sync\", it compares file modification time between source and destination to determine which files need to be transferred. ALL skips destination inventory and transfers all files discovered on the source.

" + "Options$TransferMode": "

A value that determines whether DataSync transfers only the data and metadata that differ between the source and the destination location, or whether DataSync transfers all the content from the source, without comparing to the destination location.

CHANGED: DataSync copies only data or metadata that is new or different content from the source location to the destination location.

ALL: DataSync copies all source location content to the destination, without comparing to existing content on the destination.

" } }, "Uid": { diff --git a/models/apis/directconnect/2012-10-25/docs-2.json b/models/apis/directconnect/2012-10-25/docs-2.json index 48d594a69fb..064c2e74e94 100644 --- a/models/apis/directconnect/2012-10-25/docs-2.json +++ b/models/apis/directconnect/2012-10-25/docs-2.json @@ -21,7 +21,7 @@ "CreateDirectConnectGatewayAssociation": "

Creates an association between a Direct Connect gateway and a virtual private gateway. The virtual private gateway must be attached to a VPC and must not be associated with another Direct Connect gateway.

", "CreateDirectConnectGatewayAssociationProposal": "

Creates a proposal to associate the specified virtual private gateway or transit gateway with the specified Direct Connect gateway.

You can associate a Direct Connect gateway and virtual private gateway or transit gateway that is owned by any AWS account.

", "CreateInterconnect": "

Creates an interconnect between an AWS Direct Connect Partner's network and a specific AWS Direct Connect location.

An interconnect is a connection that is capable of hosting other connections. The AWS Direct Connect partner can use an interconnect to provide AWS Direct Connect hosted connections to customers through their own network services. Like a standard connection, an interconnect links the partner's network to an AWS Direct Connect location over a standard Ethernet fiber-optic cable. One end is connected to the partner's router, the other to an AWS Direct Connect router.

You can automatically add the new interconnect to a link aggregation group (LAG) by specifying a LAG ID in the request. This ensures that the new interconnect is allocated on the same AWS Direct Connect endpoint that hosts the specified LAG. If there are no available ports on the endpoint, the request fails and no interconnect is created.

For each end customer, the AWS Direct Connect Partner provisions a connection on their interconnect by calling AllocateHostedConnection. The end customer can then connect to AWS resources by creating a virtual interface on their connection, using the VLAN assigned to them by the AWS Direct Connect Partner.

Intended for use by AWS Direct Connect Partners only.

", - "CreateLag": "

Creates a link aggregation group (LAG) with the specified number of bundled physical connections between the customer network and a specific AWS Direct Connect location. A LAG is a logical interface that uses the Link Aggregation Control Protocol (LACP) to aggregate multiple interfaces, enabling you to treat them as a single interface.

All connections in a LAG must use the same bandwidth and must terminate at the same AWS Direct Connect endpoint.

You can have up to 10 connections per LAG. Regardless of this limit, if you request more connections for the LAG than AWS Direct Connect can allocate on a single endpoint, no LAG is created.

You can specify an existing physical connection or interconnect to include in the LAG (which counts towards the total number of connections). Doing so interrupts the current physical connection or hosted connections, and re-establishes them as a member of the LAG. The LAG will be created on the same AWS Direct Connect endpoint to which the connection terminates. Any virtual interfaces associated with the connection are automatically disassociated and re-associated with the LAG. The connection ID does not change.

If the AWS account used to create a LAG is a registered AWS Direct Connect Partner, the LAG is automatically enabled to host sub-connections. For a LAG owned by a partner, any associated virtual interfaces cannot be directly configured.

", + "CreateLag": "

Creates a link aggregation group (LAG) with the specified number of bundled physical dedicated connections between the customer network and a specific AWS Direct Connect location. A LAG is a logical interface that uses the Link Aggregation Control Protocol (LACP) to aggregate multiple interfaces, enabling you to treat them as a single interface.

All connections in a LAG must use the same bandwidth (either 1Gbps or 10Gbps) and must terminate at the same AWS Direct Connect endpoint.

You can have up to 10 dedicated connections per LAG. Regardless of this limit, if you request more connections for the LAG than AWS Direct Connect can allocate on a single endpoint, no LAG is created.

You can specify an existing physical dedicated connection or interconnect to include in the LAG (which counts towards the total number of connections). Doing so interrupts the current physical dedicated connection, and re-establishes them as a member of the LAG. The LAG will be created on the same AWS Direct Connect endpoint to which the dedicated connection terminates. Any virtual interfaces associated with the dedicated connection are automatically disassociated and re-associated with the LAG. The connection ID does not change.

If the AWS account used to create a LAG is a registered AWS Direct Connect Partner, the LAG is automatically enabled to host sub-connections. For a LAG owned by a partner, any associated virtual interfaces cannot be directly configured.

", "CreatePrivateVirtualInterface": "

Creates a private virtual interface. A virtual interface is the VLAN that transports AWS Direct Connect traffic. A private virtual interface can be connected to either a Direct Connect gateway or a Virtual Private Gateway (VGW). Connecting the private virtual interface to a Direct Connect gateway enables the possibility for connecting to multiple VPCs, including VPCs in different AWS Regions. Connecting the private virtual interface to a VGW only provides access to a single VPC within the same Region.

Setting the MTU of a virtual interface to 9001 (jumbo frames) can cause an update to the underlying physical connection if it wasn't updated to support jumbo frames. Updating the connection disrupts network connectivity for all virtual interfaces associated with the connection for up to 30 seconds. To check whether your connection supports jumbo frames, call DescribeConnections. To check whether your virtual interface supports jumbo frames, call DescribeVirtualInterfaces.

", "CreatePublicVirtualInterface": "

Creates a public virtual interface. A virtual interface is the VLAN that transports AWS Direct Connect traffic. A public virtual interface supports sending traffic to public services of AWS such as Amazon S3.

When creating an IPv6 public virtual interface (addressFamily is ipv6), leave the customer and amazon address fields blank to use auto-assigned IPv6 space. Custom IPv6 addresses are not supported.

", "CreateTransitVirtualInterface": "

Creates a transit virtual interface. A transit virtual interface should be used to access one or more transit gateways associated with Direct Connect gateways. A transit virtual interface enables the connection of multiple VPCs attached to a transit gateway to a Direct Connect gateway.

If you associate your transit gateway with one or more Direct Connect gateways, the Autonomous System Number (ASN) used by the transit gateway and the Direct Connect gateway must be different. For example, if you use the default ASN 64512 for both your the transit gateway and Direct Connect gateway, the association request fails.

Setting the MTU of a virtual interface to 8500 (jumbo frames) can cause an update to the underlying physical connection if it wasn't updated to support jumbo frames. Updating the connection disrupts network connectivity for all virtual interfaces associated with the connection for up to 30 seconds. To check whether your connection supports jumbo frames, call DescribeConnections. To check whether your virtual interface supports jumbo frames, call DescribeVirtualInterfaces.

", @@ -258,7 +258,7 @@ "Connection$bandwidth": "

The bandwidth of the connection.

", "CreateConnectionRequest$bandwidth": "

The bandwidth of the connection.

", "CreateInterconnectRequest$bandwidth": "

The port bandwidth, in Gbps. The possible values are 1 and 10.

", - "CreateLagRequest$connectionsBandwidth": "

The bandwidth of the individual physical connections bundled by the LAG. The possible values are 50Mbps, 100Mbps, 200Mbps, 300Mbps, 400Mbps, 500Mbps, 1Gbps, 2Gbps, 5Gbps, and 10Gbps.

", + "CreateLagRequest$connectionsBandwidth": "

The bandwidth of the individual physical dedicated connections bundled by the LAG. The possible values are 1Gbps and 10Gbps.

", "Interconnect$bandwidth": "

The bandwidth of the connection.

", "Lag$connectionsBandwidth": "

The individual bandwidth of the physical connections bundled by the LAG. The possible values are 1Gbps and 10Gbps.

" } @@ -334,7 +334,7 @@ "AssociateVirtualInterfaceRequest$connectionId": "

The ID of the LAG or connection.

", "ConfirmConnectionRequest$connectionId": "

The ID of the hosted connection.

", "Connection$connectionId": "

The ID of the connection.

", - "CreateLagRequest$connectionId": "

The ID of an existing connection to migrate to the LAG.

", + "CreateLagRequest$connectionId": "

The ID of an existing dedicated connection to migrate to the LAG.

", "CreatePrivateVirtualInterfaceRequest$connectionId": "

The ID of the connection.

", "CreatePublicVirtualInterfaceRequest$connectionId": "

The ID of the connection.

", "CreateTransitVirtualInterfaceRequest$connectionId": "

The ID of the connection.

", @@ -379,9 +379,9 @@ "Count": { "base": null, "refs": { - "CreateLagRequest$numberOfConnections": "

The number of physical connections initially provisioned and bundled by the LAG.

", - "Lag$numberOfConnections": "

The number of physical connections bundled by the LAG, up to a maximum of 10.

", - "Lag$minimumLinks": "

The minimum number of physical connections that must be operational for the LAG itself to be operational.

", + "CreateLagRequest$numberOfConnections": "

The number of physical dedicated connections initially provisioned and bundled by the LAG.

", + "Lag$numberOfConnections": "

The number of physical dedicated connections bundled by the LAG, up to a maximum of 10.

", + "Lag$minimumLinks": "

The minimum number of physical dedicated connections that must be operational for the LAG itself to be operational.

", "UpdateLagRequest$minimumLinks": "

The minimum number of physical connections that must be operational for the LAG itself to be operational.

" } }, diff --git a/models/apis/elasticmapreduce/2009-03-31/api-2.json b/models/apis/elasticmapreduce/2009-03-31/api-2.json index 9baafa06a56..5149aa9156e 100644 --- a/models/apis/elasticmapreduce/2009-03-31/api-2.json +++ b/models/apis/elasticmapreduce/2009-03-31/api-2.json @@ -755,7 +755,8 @@ "KerberosAttributes":{"shape":"KerberosAttributes"}, "ClusterArn":{"shape":"ArnType"}, "OutpostArn":{"shape":"OptionalArnType"}, - "StepConcurrencyLevel":{"shape":"Integer"} + "StepConcurrencyLevel":{"shape":"Integer"}, + "PlacementGroups":{"shape":"PlacementGroupConfigList"} } }, "ClusterId":{"type":"string"}, @@ -1938,6 +1939,27 @@ "max":2048, "min":0 }, + "PlacementGroupConfig":{ + "type":"structure", + "required":["InstanceRole"], + "members":{ + "InstanceRole":{"shape":"InstanceRoleType"}, + "PlacementStrategy":{"shape":"PlacementGroupStrategy"} + } + }, + "PlacementGroupConfigList":{ + "type":"list", + "member":{"shape":"PlacementGroupConfig"} + }, + "PlacementGroupStrategy":{ + "type":"string", + "enum":[ + "SPREAD", + "PARTITION", + "CLUSTER", + "NONE" + ] + }, "PlacementType":{ "type":"structure", "members":{ @@ -2096,7 +2118,8 @@ "RepoUpgradeOnBoot":{"shape":"RepoUpgradeOnBoot"}, "KerberosAttributes":{"shape":"KerberosAttributes"}, "StepConcurrencyLevel":{"shape":"Integer"}, - "ManagedScalingPolicy":{"shape":"ManagedScalingPolicy"} + "ManagedScalingPolicy":{"shape":"ManagedScalingPolicy"}, + "PlacementGroupConfigs":{"shape":"PlacementGroupConfigList"} } }, "RunJobFlowOutput":{ diff --git a/models/apis/elasticmapreduce/2009-03-31/docs-2.json b/models/apis/elasticmapreduce/2009-03-31/docs-2.json index 544bd66495c..b937cf7fa7d 100644 --- a/models/apis/elasticmapreduce/2009-03-31/docs-2.json +++ b/models/apis/elasticmapreduce/2009-03-31/docs-2.json @@ -858,7 +858,8 @@ "base": null, "refs": { "InstanceGroupConfig$InstanceRole": "

The role of the instance group in the cluster.

", - "InstanceGroupDetail$InstanceRole": "

Instance group role in the cluster

" + "InstanceGroupDetail$InstanceRole": "

Instance group role in the cluster

", + "PlacementGroupConfig$InstanceRole": null } }, "InstanceState": { @@ -1268,6 +1269,25 @@ "ClusterSummary$OutpostArn": "

The Amazon Resource Name (ARN) of the Outpost where the cluster is launched.

" } }, + "PlacementGroupConfig": { + "base": null, + "refs": { + "PlacementGroupConfigList$member": null + } + }, + "PlacementGroupConfigList": { + "base": null, + "refs": { + "Cluster$PlacementGroups": null, + "RunJobFlowInput$PlacementGroupConfigs": null + } + }, + "PlacementGroupStrategy": { + "base": null, + "refs": { + "PlacementGroupConfig$PlacementStrategy": null + } + }, "PlacementType": { "base": "

The Amazon EC2 Availability Zone configuration of the cluster (job flow).

", "refs": { diff --git a/models/apis/imagebuilder/2019-12-02/api-2.json b/models/apis/imagebuilder/2019-12-02/api-2.json index cea5c0d18e5..1d98b94f4f3 100644 --- a/models/apis/imagebuilder/2019-12-02/api-2.json +++ b/models/apis/imagebuilder/2019-12-02/api-2.json @@ -784,9 +784,15 @@ } }, "shapes":{ + "AccountId":{ + "type":"string", + "pattern":"^\\d{12}$" + }, "AccountList":{ "type":"list", - "member":{"shape":"NonEmptyString"} + "member":{"shape":"AccountId"}, + "max":50, + "min":1 }, "Ami":{ "type":"structure", @@ -795,7 +801,8 @@ "image":{"shape":"NonEmptyString"}, "name":{"shape":"NonEmptyString"}, "description":{"shape":"NonEmptyString"}, - "state":{"shape":"ImageState"} + "state":{"shape":"ImageState"}, + "accountId":{"shape":"NonEmptyString"} } }, "AmiDistributionConfiguration":{ @@ -803,6 +810,7 @@ "members":{ "name":{"shape":"AmiNameString"}, "description":{"shape":"NonEmptyString"}, + "targetAccountIds":{"shape":"AccountList"}, "amiTags":{"shape":"TagMap"}, "kmsKeyId":{"shape":"NonEmptyString"}, "launchPermission":{"shape":"LaunchPermissionConfiguration"} @@ -819,10 +827,6 @@ "pattern":"^[-_A-Za-z0-9{][-_A-Za-z0-9\\s:{}\\.]+[-_A-Za-z0-9}]$" }, "Arn":{"type":"string"}, - "ArnList":{ - "type":"list", - "member":{"shape":"Arn"} - }, "CallRateLimitExceededException":{ "type":"structure", "members":{ @@ -1260,7 +1264,7 @@ "members":{ "region":{"shape":"NonEmptyString"}, "amiDistributionConfiguration":{"shape":"AmiDistributionConfiguration"}, - "licenseConfigurationArns":{"shape":"ArnList"} + "licenseConfigurationArns":{"shape":"LicenseConfigurationArnList"} } }, "DistributionConfiguration":{ @@ -1332,6 +1336,7 @@ "enum":[ "standard", "io1", + "io2", "gp2", "sc1", "st1" @@ -1875,6 +1880,16 @@ "userGroups":{"shape":"StringList"} } }, + "LicenseConfigurationArn":{ + "type":"string", + "pattern":"^arn:aws[^:]*:license-manager:[^:]+:\\d{12}:license-configuration:lic-[a-z0-9-_]{32}$" + }, + "LicenseConfigurationArnList":{ + "type":"list", + "member":{"shape":"LicenseConfigurationArn"}, + "max":50, + "min":1 + }, "ListComponentBuildVersionsRequest":{ "type":"structure", "required":["componentVersionArn"], diff --git a/models/apis/imagebuilder/2019-12-02/docs-2.json b/models/apis/imagebuilder/2019-12-02/docs-2.json index 0c9a81c0077..c2faff90aa2 100644 --- a/models/apis/imagebuilder/2019-12-02/docs-2.json +++ b/models/apis/imagebuilder/2019-12-02/docs-2.json @@ -46,9 +46,16 @@ "UpdateInfrastructureConfiguration": "

Updates a new infrastructure configuration. An infrastructure configuration defines the environment in which your image will be built and tested.

" }, "shapes": { + "AccountId": { + "base": null, + "refs": { + "AccountList$member": null + } + }, "AccountList": { "base": null, "refs": { + "AmiDistributionConfiguration$targetAccountIds": "

The ID of an account to which you want to distribute an image.

", "LaunchPermissionConfiguration$userIds": "

The AWS account ID.

" } }, @@ -79,19 +86,12 @@ "Arn": { "base": null, "refs": { - "ArnList$member": null, "Image$sourcePipelineArn": "

The Amazon Resource Name (ARN) of the image pipeline that created this image.

", "ImagePipeline$imageRecipeArn": "

The Amazon Resource Name (ARN) of the image recipe associated with this image pipeline.

", "ImagePipeline$infrastructureConfigurationArn": "

The Amazon Resource Name (ARN) of the infrastructure configuration associated with this image pipeline.

", "ImagePipeline$distributionConfigurationArn": "

The Amazon Resource Name (ARN) of the distribution configuration associated with this image pipeline.

" } }, - "ArnList": { - "base": null, - "refs": { - "Distribution$licenseConfigurationArns": "

The License Manager Configuration to associate with the AMI in the specified Region.

" - } - }, "CallRateLimitExceededException": { "base": "

You have exceeded the permitted request rate for the specific operation.

", "refs": { @@ -897,6 +897,18 @@ "AmiDistributionConfiguration$launchPermission": "

Launch permissions can be used to configure which AWS accounts can use the AMI to launch instances.

" } }, + "LicenseConfigurationArn": { + "base": null, + "refs": { + "LicenseConfigurationArnList$member": null + } + }, + "LicenseConfigurationArnList": { + "base": null, + "refs": { + "Distribution$licenseConfigurationArns": "

The License Manager Configuration to associate with the AMI in the specified Region.

" + } + }, "ListComponentBuildVersionsRequest": { "base": null, "refs": { @@ -1008,11 +1020,11 @@ "NonEmptyString": { "base": null, "refs": { - "AccountList$member": null, "Ami$region": "

The AWS Region of the EC2 AMI.

", "Ami$image": "

The AMI ID of the EC2 AMI.

", "Ami$name": "

The name of the EC2 AMI.

", "Ami$description": "

The description of the EC2 AMI.

", + "Ami$accountId": "

The account ID of the owner of the AMI.

", "AmiDistributionConfiguration$description": "

The description of the distribution configuration.

", "AmiDistributionConfiguration$kmsKeyId": "

The KMS key identifier used to encrypt the distributed image.

", "CancelImageCreationResponse$requestId": "

The request ID that uniquely identifies this request.

", @@ -1034,7 +1046,7 @@ "CreateImagePipelineRequest$description": "

The description of the image pipeline.

", "CreateImagePipelineResponse$requestId": "

The request ID that uniquely identifies this request.

", "CreateImageRecipeRequest$description": "

The description of the image recipe.

", - "CreateImageRecipeRequest$parentImage": "

The parent image of the image recipe. The value of the string can be the ARN of the parent image or an AMI ID. The format for the ARN follows this example: arn:aws:imagebuilder:us-west-2:aws:image/windows-server-2016-english-full-base-x86/2019.x.x. The ARN ends with /20xx.x.x, which communicates to EC2 Image Builder that you want to use the latest AMI created in 20xx (year). You can provide the specific version that you want to use, or you can use a wildcard in all of the fields. If you enter an AMI ID for the string value, you must have access to the AMI, and the AMI must be in the same Region in which you are using Image Builder.

", + "CreateImageRecipeRequest$parentImage": "

The parent image of the image recipe. The value of the string can be the ARN of the parent image or an AMI ID. The format for the ARN follows this example: arn:aws:imagebuilder:us-west-2:aws:image/windows-server-2016-english-full-base-x86/xxxx.x.x. You can provide the specific version that you want to use, or you can use a wildcard in all of the fields. If you enter an AMI ID for the string value, you must have access to the AMI, and the AMI must be in the same Region in which you are using Image Builder.

", "CreateImageRecipeRequest$workingDirectory": "

The working directory to be used during build and test workflows.

", "CreateImageRecipeResponse$requestId": "

The request ID that uniquely identifies this request.

", "CreateImageResponse$requestId": "

The request ID that uniquely identifies this request.

", @@ -1118,7 +1130,7 @@ "PutImageRecipePolicyResponse$requestId": "

The request ID that uniquely identifies this request.

", "S3Logs$s3BucketName": "

The Amazon S3 bucket in which to store the logs.

", "S3Logs$s3KeyPrefix": "

The Amazon S3 path in which to store the logs.

", - "Schedule$scheduleExpression": "

The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.

", + "Schedule$scheduleExpression": "

The cron expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition.

For information on how to format a cron expression in Image Builder, see Use cron expressions in EC2 Image Builder.

", "SecurityGroupIds$member": null, "StartImagePipelineExecutionResponse$requestId": "

The request ID that uniquely identifies this request.

", "StringList$member": null, @@ -1186,7 +1198,7 @@ "PipelineExecutionStartCondition": { "base": null, "refs": { - "Schedule$pipelineExecutionStartCondition": "

The condition configures when the pipeline should trigger a new image build. When the pipelineExecutionStartCondition is set to EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE, EC2 Image Builder will build a new image only when there are known changes pending. When it is set to EXPRESSION_MATCH_ONLY, it will build a new image every time the CRON expression matches the current time.

" + "Schedule$pipelineExecutionStartCondition": "

The condition configures when the pipeline should trigger a new image build. When the pipelineExecutionStartCondition is set to EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE, and you use semantic version filters on the source image or components in your image recipe, EC2 Image Builder will build a new image only when there are new versions of the image or components in your recipe that match the semantic version filter. When it is set to EXPRESSION_MATCH_ONLY, it will build a new image every time the CRON expression matches the current time. For semantic version syntax, see CreateComponent in the EC2 Image Builder API Reference.

" } }, "PipelineStatus": { diff --git a/models/apis/iot/2015-05-28/api-2.json b/models/apis/iot/2015-05-28/api-2.json index bab61fc71f6..7e03a5737fb 100644 --- a/models/apis/iot/2015-05-28/api-2.json +++ b/models/apis/iot/2015-05-28/api-2.json @@ -2886,7 +2886,8 @@ {"shape":"InternalException"}, {"shape":"NotConfiguredException"}, {"shape":"InvalidRequestException"}, - {"shape":"ServiceUnavailableException"} + {"shape":"ServiceUnavailableException"}, + {"shape":"LimitExceededException"} ] }, "SetV2LoggingOptions":{ @@ -3495,6 +3496,7 @@ "iotEvents":{"shape":"IotEventsAction"}, "iotSiteWise":{"shape":"IotSiteWiseAction"}, "stepFunctions":{"shape":"StepFunctionsAction"}, + "timestream":{"shape":"TimestreamAction"}, "http":{"shape":"HttpAction"} } }, @@ -3618,7 +3620,6 @@ "AssetId":{"type":"string"}, "AssetPropertyAlias":{ "type":"string", - "max":2048, "min":1 }, "AssetPropertyBooleanValue":{"type":"string"}, @@ -10962,6 +10963,56 @@ } }, "Timestamp":{"type":"timestamp"}, + "TimestreamAction":{ + "type":"structure", + "required":[ + "roleArn", + "databaseName", + "tableName", + "dimensions" + ], + "members":{ + "roleArn":{"shape":"AwsArn"}, + "databaseName":{"shape":"TimestreamDatabaseName"}, + "tableName":{"shape":"TimestreamTableName"}, + "dimensions":{"shape":"TimestreamDimensionList"}, + "timestamp":{"shape":"TimestreamTimestamp"} + } + }, + "TimestreamDatabaseName":{"type":"string"}, + "TimestreamDimension":{ + "type":"structure", + "required":[ + "name", + "value" + ], + "members":{ + "name":{"shape":"TimestreamDimensionName"}, + "value":{"shape":"TimestreamDimensionValue"} + } + }, + "TimestreamDimensionList":{ + "type":"list", + "member":{"shape":"TimestreamDimension"}, + "max":128, + "min":1 + }, + "TimestreamDimensionName":{"type":"string"}, + "TimestreamDimensionValue":{"type":"string"}, + "TimestreamTableName":{"type":"string"}, + "TimestreamTimestamp":{ + "type":"structure", + "required":[ + "value", + "unit" + ], + "members":{ + "value":{"shape":"TimestreamTimestampValue"}, + "unit":{"shape":"TimestreamTimestampUnit"} + } + }, + "TimestreamTimestampUnit":{"type":"string"}, + "TimestreamTimestampValue":{"type":"string"}, "TlsContext":{ "type":"structure", "members":{ diff --git a/models/apis/iot/2015-05-28/docs-2.json b/models/apis/iot/2015-05-28/docs-2.json index faa00e17efd..4d76b7de185 100644 --- a/models/apis/iot/2015-05-28/docs-2.json +++ b/models/apis/iot/2015-05-28/docs-2.json @@ -121,7 +121,7 @@ "GetV2LoggingOptions": "

Gets the fine grained logging options.

", "ListActiveViolations": "

Lists the active violations for a given Device Defender security profile.

", "ListAttachedPolicies": "

Lists the policies attached to the specified thing group.

", - "ListAuditFindings": "

Lists the findings (results) of a Device Defender audit or of the audits performed during a specified time period. (Findings are retained for 180 days.)

", + "ListAuditFindings": "

Lists the findings (results) of a Device Defender audit or of the audits performed during a specified time period. (Findings are retained for 90 days.)

", "ListAuditMitigationActionsExecutions": "

Gets the status of audit mitigation action tasks that were executed.

", "ListAuditMitigationActionsTasks": "

Gets a list of audit mitigation action tasks that match the specified filters.

", "ListAuditSuppressions": "

Lists your Device Defender audit listings.

", @@ -994,6 +994,7 @@ "SnsAction$roleArn": "

The ARN of the IAM role that grants access.

", "SqsAction$roleArn": "

The ARN of the IAM role that grants access.

", "StepFunctionsAction$roleArn": "

The ARN of the role that grants IoT permission to start execution of a state machine (\"Action\":\"states:StartExecution\").

", + "TimestreamAction$roleArn": "

The ARN of the role that grants permission to write to the Amazon Timestream database table.

", "TopicRuleDestination$arn": "

The topic rule destination URL.

", "TopicRuleDestinationSummary$arn": "

The topic rule destination ARN.

", "UpdateTopicRuleDestinationRequest$arn": "

The ARN of the topic rule destination.

" @@ -6839,7 +6840,7 @@ "ListAuditFindingsRequest$endTime": "

A filter to limit results to those found before the specified time. You must specify either the startTime and endTime or the taskId, but not both.

", "ListAuditMitigationActionsTasksRequest$startTime": "

Specify this filter to limit results to tasks that began on or after a specific date and time.

", "ListAuditMitigationActionsTasksRequest$endTime": "

Specify this filter to limit results to tasks that were completed or canceled on or before a specific date and time.

", - "ListAuditTasksRequest$startTime": "

The beginning of the time period. Audit information is retained for a limited time (180 days). Requesting a start time prior to what is retained results in an \"InvalidRequestException\".

", + "ListAuditTasksRequest$startTime": "

The beginning of the time period. Audit information is retained for a limited time (90 days). Requesting a start time prior to what is retained results in an \"InvalidRequestException\".

", "ListAuditTasksRequest$endTime": "

The end of the time period.

", "ListViolationEventsRequest$startTime": "

The start time for the alerts to be listed.

", "ListViolationEventsRequest$endTime": "

The end time for the alerts to be listed.

", @@ -6852,6 +6853,66 @@ "ViolationEvent$violationEventTime": "

The time the violation event occurred.

" } }, + "TimestreamAction": { + "base": "

The Timestream rule action writes attributes (measures) from an MQTT message into an Amazon Timestream table. For more information, see the Timestream topic rule action documentation.

", + "refs": { + "Action$timestream": "

The Timestream rule action writes attributes (measures) from an MQTT message into an Amazon Timestream table. For more information, see the Timestream topic rule action documentation.

" + } + }, + "TimestreamDatabaseName": { + "base": null, + "refs": { + "TimestreamAction$databaseName": "

The name of an Amazon Timestream database.

" + } + }, + "TimestreamDimension": { + "base": "

Metadata attributes of the time series that are written in each measure record.

", + "refs": { + "TimestreamDimensionList$member": null + } + }, + "TimestreamDimensionList": { + "base": null, + "refs": { + "TimestreamAction$dimensions": "

Metadata attributes of the time series that are written in each measure record.

" + } + }, + "TimestreamDimensionName": { + "base": null, + "refs": { + "TimestreamDimension$name": "

The metadata dimension name. This is the name of the column in the Amazon Timestream database table record.

Dimensions cannot be named: measure_name, measure_value, or time. These names are reserved. Dimension names cannot start with ts_ or measure_value and they cannot contain the colon (:) character.

" + } + }, + "TimestreamDimensionValue": { + "base": null, + "refs": { + "TimestreamDimension$value": "

The value to write in this column of the database record.

" + } + }, + "TimestreamTableName": { + "base": null, + "refs": { + "TimestreamAction$tableName": "

The name of the database table into which to write the measure records.

" + } + }, + "TimestreamTimestamp": { + "base": "

Describes how to interpret an application-defined timestamp value from an MQTT message payload and the precision of that value.

", + "refs": { + "TimestreamAction$timestamp": "

Specifies an application-defined value to replace the default value assigned to the Timestream record's timestamp in the time column.

You can use this property to specify the value and the precision of the Timestream record's timestamp. You can specify a value from the message payload or a value computed by a substitution template.

If omitted, the topic rule action assigns the timestamp, in milliseconds, at the time it processed the rule.

" + } + }, + "TimestreamTimestampUnit": { + "base": null, + "refs": { + "TimestreamTimestamp$unit": "

The precision of the timestamp value that results from the expression described in value.

Valid values: SECONDS | MILLISECONDS | MICROSECONDS | NANOSECONDS. The default is MILLISECONDS.

" + } + }, + "TimestreamTimestampValue": { + "base": null, + "refs": { + "TimestreamTimestamp$value": "

An expression that returns a long epoch time value.

" + } + }, "TlsContext": { "base": "

Specifies the TLS context to use for the test authorizer request.

", "refs": { diff --git a/models/apis/mediaconnect/2018-11-14/api-2.json b/models/apis/mediaconnect/2018-11-14/api-2.json index 5f27ca7f1ce..be5352be513 100644 --- a/models/apis/mediaconnect/2018-11-14/api-2.json +++ b/models/apis/mediaconnect/2018-11-14/api-2.json @@ -218,6 +218,68 @@ } ] }, + "DescribeOffering": { + "name": "DescribeOffering", + "http": { + "method": "GET", + "requestUri": "/v1/offerings/{offeringArn}", + "responseCode": 200 + }, + "input": { + "shape": "DescribeOfferingRequest" + }, + "output": { + "shape": "DescribeOfferingResponse" + }, + "errors": [ + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + } + ] + }, + "DescribeReservation": { + "name": "DescribeReservation", + "http": { + "method": "GET", + "requestUri": "/v1/reservations/{reservationArn}", + "responseCode": 200 + }, + "input": { + "shape": "DescribeReservationRequest" + }, + "output": { + "shape": "DescribeReservationResponse" + }, + "errors": [ + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + } + ] + }, "GrantFlowEntitlements": { "name": "GrantFlowEntitlements", "http": { @@ -311,6 +373,62 @@ } ] }, + "ListOfferings": { + "name": "ListOfferings", + "http": { + "method": "GET", + "requestUri": "/v1/offerings", + "responseCode": 200 + }, + "input": { + "shape": "ListOfferingsRequest" + }, + "output": { + "shape": "ListOfferingsResponse" + }, + "errors": [ + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + } + ] + }, + "ListReservations": { + "name": "ListReservations", + "http": { + "method": "GET", + "requestUri": "/v1/reservations", + "responseCode": 200 + }, + "input": { + "shape": "ListReservationsRequest" + }, + "output": { + "shape": "ListReservationsResponse" + }, + "errors": [ + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "TooManyRequestsException" + }, + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + } + ] + }, "ListTagsForResource": { "name": "ListTagsForResource", "http": { @@ -336,6 +454,40 @@ } ] }, + "PurchaseOffering": { + "name": "PurchaseOffering", + "http": { + "method": "POST", + "requestUri": "/v1/offerings/{offeringArn}", + "responseCode": 201 + }, + "input": { + "shape": "PurchaseOfferingRequest" + }, + "output": { + "shape": "PurchaseOfferingResponse" + }, + "errors": [ + { + "shape": "BadRequestException" + }, + { + "shape": "InternalServerErrorException" + }, + { + "shape": "ForbiddenException" + }, + { + "shape": "NotFoundException" + }, + { + "shape": "ServiceUnavailableException" + }, + { + "shape": "TooManyRequestsException" + } + ] + }, "RemoveFlowOutput": { "name": "RemoveFlowOutput", "http": { @@ -1028,6 +1180,56 @@ } } }, + "DescribeOfferingRequest": { + "type": "structure", + "members": { + "OfferingArn": { + "shape": "__string", + "location": "uri", + "locationName": "offeringArn" + } + }, + "required": [ + "OfferingArn" + ] + }, + "DescribeOfferingResponse": { + "type": "structure", + "members": { + "Offering": { + "shape": "Offering", + "locationName": "offering" + } + } + }, + "DescribeReservationRequest": { + "type": "structure", + "members": { + "ReservationArn": { + "shape": "__string", + "location": "uri", + "locationName": "reservationArn" + } + }, + "required": [ + "ReservationArn" + ] + }, + "DescribeReservationResponse": { + "type": "structure", + "members": { + "Reservation": { + "shape": "Reservation", + "locationName": "reservation" + } + } + }, + "DurationUnits": { + "type": "string", + "enum": [ + "MONTHS" + ] + }, "Encryption": { "type": "structure", "members": { @@ -1367,6 +1569,62 @@ } } }, + "ListOfferingsRequest": { + "type": "structure", + "members": { + "MaxResults": { + "shape": "MaxResults", + "location": "querystring", + "locationName": "maxResults" + }, + "NextToken": { + "shape": "__string", + "location": "querystring", + "locationName": "nextToken" + } + } + }, + "ListOfferingsResponse": { + "type": "structure", + "members": { + "NextToken": { + "shape": "__string", + "locationName": "nextToken" + }, + "Offerings": { + "shape": "__listOfOffering", + "locationName": "offerings" + } + } + }, + "ListReservationsRequest": { + "type": "structure", + "members": { + "MaxResults": { + "shape": "MaxResults", + "location": "querystring", + "locationName": "maxResults" + }, + "NextToken": { + "shape": "__string", + "location": "querystring", + "locationName": "nextToken" + } + } + }, + "ListReservationsResponse": { + "type": "structure", + "members": { + "NextToken": { + "shape": "__string", + "locationName": "nextToken" + }, + "Reservations": { + "shape": "__listOfReservation", + "locationName": "reservations" + } + } + }, "ListTagsForResourceRequest": { "type": "structure", "members": { @@ -1480,6 +1738,53 @@ "httpStatusCode": 404 } }, + "Offering": { + "type": "structure", + "members": { + "CurrencyCode": { + "shape": "__string", + "locationName": "currencyCode" + }, + "Duration": { + "shape": "__integer", + "locationName": "duration" + }, + "DurationUnits": { + "shape": "DurationUnits", + "locationName": "durationUnits" + }, + "OfferingArn": { + "shape": "__string", + "locationName": "offeringArn" + }, + "OfferingDescription": { + "shape": "__string", + "locationName": "offeringDescription" + }, + "PricePerUnit": { + "shape": "__string", + "locationName": "pricePerUnit" + }, + "PriceUnits": { + "shape": "PriceUnits", + "locationName": "priceUnits" + }, + "ResourceSpecification": { + "shape": "ResourceSpecification", + "locationName": "resourceSpecification" + } + }, + "required": [ + "CurrencyCode", + "OfferingArn", + "OfferingDescription", + "DurationUnits", + "Duration", + "PricePerUnit", + "ResourceSpecification", + "PriceUnits" + ] + }, "Output": { "type": "structure", "members": { @@ -1533,6 +1838,12 @@ "Name" ] }, + "PriceUnits": { + "type": "string", + "enum": [ + "HOURLY" + ] + }, "Protocol": { "type": "string", "enum": [ @@ -1543,6 +1854,38 @@ "rist" ] }, + "PurchaseOfferingRequest": { + "type": "structure", + "members": { + "OfferingArn": { + "shape": "__string", + "location": "uri", + "locationName": "offeringArn" + }, + "ReservationName": { + "shape": "__string", + "locationName": "reservationName" + }, + "Start": { + "shape": "__string", + "locationName": "start" + } + }, + "required": [ + "OfferingArn", + "Start", + "ReservationName" + ] + }, + "PurchaseOfferingResponse": { + "type": "structure", + "members": { + "Reservation": { + "shape": "Reservation", + "locationName": "reservation" + } + } + }, "RemoveFlowOutputRequest": { "type": "structure", "members": { @@ -1643,6 +1986,109 @@ } } }, + "Reservation": { + "type": "structure", + "members": { + "CurrencyCode": { + "shape": "__string", + "locationName": "currencyCode" + }, + "Duration": { + "shape": "__integer", + "locationName": "duration" + }, + "DurationUnits": { + "shape": "DurationUnits", + "locationName": "durationUnits" + }, + "End": { + "shape": "__string", + "locationName": "end" + }, + "OfferingArn": { + "shape": "__string", + "locationName": "offeringArn" + }, + "OfferingDescription": { + "shape": "__string", + "locationName": "offeringDescription" + }, + "PricePerUnit": { + "shape": "__string", + "locationName": "pricePerUnit" + }, + "PriceUnits": { + "shape": "PriceUnits", + "locationName": "priceUnits" + }, + "ReservationArn": { + "shape": "__string", + "locationName": "reservationArn" + }, + "ReservationName": { + "shape": "__string", + "locationName": "reservationName" + }, + "ReservationState": { + "shape": "ReservationState", + "locationName": "reservationState" + }, + "ResourceSpecification": { + "shape": "ResourceSpecification", + "locationName": "resourceSpecification" + }, + "Start": { + "shape": "__string", + "locationName": "start" + } + }, + "required": [ + "CurrencyCode", + "ReservationState", + "OfferingArn", + "ReservationArn", + "Start", + "OfferingDescription", + "ReservationName", + "End", + "Duration", + "DurationUnits", + "PricePerUnit", + "ResourceSpecification", + "PriceUnits" + ] + }, + "ReservationState": { + "type": "string", + "enum": [ + "ACTIVE", + "EXPIRED", + "PROCESSING", + "CANCELED" + ] + }, + "ResourceSpecification": { + "type": "structure", + "members": { + "ReservedBitrate": { + "shape": "__integer", + "locationName": "reservedBitrate" + }, + "ResourceType": { + "shape": "ResourceType", + "locationName": "resourceType" + } + }, + "required": [ + "ResourceType" + ] + }, + "ResourceType": { + "type": "string", + "enum": [ + "Mbps_Outbound_Bandwidth" + ] + }, "ResponseError": { "type": "structure", "members": { @@ -2355,12 +2801,24 @@ "shape": "ListedFlow" } }, + "__listOfOffering": { + "type": "list", + "member": { + "shape": "Offering" + } + }, "__listOfOutput": { "type": "list", "member": { "shape": "Output" } }, + "__listOfReservation": { + "type": "list", + "member": { + "shape": "Reservation" + } + }, "__listOfSetSourceRequest": { "type": "list", "member": { @@ -2421,4 +2879,4 @@ "timestampFormat": "unixTimestamp" } } -} \ No newline at end of file +} diff --git a/models/apis/mediaconnect/2018-11-14/docs-2.json b/models/apis/mediaconnect/2018-11-14/docs-2.json index e1f18b154be..064c4053df9 100644 --- a/models/apis/mediaconnect/2018-11-14/docs-2.json +++ b/models/apis/mediaconnect/2018-11-14/docs-2.json @@ -8,10 +8,15 @@ "CreateFlow": "Creates a new flow. The request must include one source. The request optionally can include outputs (up to 50) and entitlements (up to 50).", "DeleteFlow": "Deletes a flow. Before you can delete a flow, you must stop the flow.", "DescribeFlow": "Displays the details of a flow. The response includes the flow ARN, name, and Availability Zone, as well as details about the source, outputs, and entitlements.", + "DescribeOffering": "Displays the details of an offering. The response includes the offering description, duration, outbound bandwidth, price, and Amazon Resource Name (ARN).", + "DescribeReservation": "Displays the details of a reservation. The response includes the reservation name, state, start date and time, and the details of the offering that make up the rest of the reservation (such as price, duration, and outbound bandwidth).", "GrantFlowEntitlements": "Grants entitlements to an existing flow.", "ListEntitlements": "Displays a list of all entitlements that have been granted to this account. This request returns 20 results per page.", "ListFlows": "Displays a list of flows that are associated with this account. This request returns a paginated result.", + "ListOfferings": "Displays a list of all offerings that are available to this account in the current AWS Region. If you have an active reservation (which means you've purchased an offering that has already started and hasn't expired yet), your account isn't eligible for other offerings.", + "ListReservations": "Displays a list of all reservations that have been purchased by this account in the current AWS Region. This list includes all reservations in all states (such as active and expired).", "ListTagsForResource": "List all tags on an AWS Elemental MediaConnect resource", + "PurchaseOffering": "Submits a request to purchase an offering. If you already have an active reservation, you can't purchase another offering.", "RemoveFlowOutput": "Removes an output from an existing flow. This request can be made only on an output that does not have an entitlement associated with it. If the output has an entitlement, you must revoke the entitlement instead. When an entitlement is revoked from a flow, the service automatically removes the associated output.", "RemoveFlowSource": "Removes a source from an existing flow. This request can be made only if there is more than one source on the flow.", "RemoveFlowVpcInterface": "Removes a VPC Interface from an existing flow. This request can be made only on a VPC interface that does not have a Source or Output associated with it. If the VPC interface is referenced by a Source or Output, you must first delete or update the Source or Output to no longer reference the VPC interface.", @@ -91,6 +96,21 @@ "base": "The result of a successful DescribeFlow request.", "refs": {} }, + "DescribeOfferingResponse": { + "base": "The result of a successful DescribeOffering request.", + "refs": {} + }, + "DescribeReservationResponse": { + "base": "The result of a successful DescribeReservation request.", + "refs": {} + }, + "DurationUnits": { + "base": null, + "refs": { + "Offering$DurationUnits": "The unit of measurement for the duration of the offering.", + "Reservation$DurationUnits": "The unit of measurement for the duration of the reservation. MediaConnect defines this value in the offering." + } + }, "Encryption": { "base": "Information about the encryption of the flow.", "refs": { @@ -105,7 +125,7 @@ "Entitlement": { "base": "The settings for a flow entitlement.", "refs": { - "UpdateFlowEntitlementResponse$Entitlement": null, + "UpdateFlowEntitlementResponse$Entitlement": "The new configuration of the entitlement that you updated.", "__listOfEntitlement$member": null } }, @@ -173,6 +193,14 @@ "base": "The result of a successful ListFlows request. The response includes flow summaries and the NextToken to use in a subsequent ListFlows request.", "refs": {} }, + "ListOfferingsResponse": { + "base": "The result of a successful ListOfferings request. The response includes the details of each offering that your account is eligible for. The response includes the following information for each offering: description, duration, outbound bandwidth, price, Amazon Resource Name (ARN), and the NextToken to use in a subsequent ListOfferings request.", + "refs": {} + }, + "ListReservationsResponse": { + "base": "The result of a successful ListReservations request. The response includes the details of each offering that your account is eligible for. The response includes the following information for each offering: description, duration, outbound bandwidth, price, Amazon Resource Name (ARN), and the NextToken to use in a subsequent ListOfferings request.", + "refs": {} + }, "ListTagsForResourceResponse": { "base": "The tags for the resource.", "refs": {} @@ -199,13 +227,27 @@ "base": "Exception raised by AWS Elemental MediaConnect. See the error message and documentation for the operation for more information on the cause of this exception.", "refs": {} }, + "Offering": { + "base": "A savings plan that reserves a certain amount of outbound bandwidth usage at a discounted rate each month over a period of time.", + "refs": { + "DescribeOfferingResponse$Offering": null, + "__listOfOffering$member": null + } + }, "Output": { "base": "The settings for an output.", "refs": { - "UpdateFlowOutputResponse$Output": null, + "UpdateFlowOutputResponse$Output": "The new settings of the output that you updated.", "__listOfOutput$member": null } }, + "PriceUnits": { + "base": null, + "refs": { + "Offering$PriceUnits": "The unit of measurement that is used for billing. This value, in combination with pricePerUnit, makes up the rate.", + "Reservation$PriceUnits": "The unit of measurement that is used for billing. This value, in combination with pricePerUnit, makes up the rate. MediaConnect defines this value in the offering." + } + }, "Protocol": { "base": null, "refs": { @@ -216,6 +258,14 @@ "UpdateFlowSourceRequest$Protocol": "The protocol that is used by the source." } }, + "PurchaseOfferingRequest": { + "base": "Submits a request to purchase an offering, which creates a reservation in your AWS account. If you already have an active reservation, you can't purchase another offering.", + "refs": {} + }, + "PurchaseOfferingResponse": { + "base": "The result of a successful PurchaseOffering request.", + "refs": {} + }, "RemoveFlowOutputResponse": { "base": "The result of a successful RemoveFlowOutput request including the flow ARN and the output ARN that was removed.", "refs": {} @@ -228,6 +278,33 @@ "base": "The result of a successful RemoveFlowVpcInterface request including the flow ARN and the VPC interface name that was removed.", "refs": {} }, + "Reservation": { + "base": "A pricing agreement for a discounted rate for a specific outbound bandwidth that your MediaConnect account will use each month over a specific time period. The discounted rate in the reservation applies to outbound bandwidth for all flows from your account until your account reaches the amount of bandwidth in your reservation. If you use more outbound bandwidth than the agreed upon amount in a single month, the overage is charged at the on-demand rate.", + "refs": { + "DescribeReservationResponse$Reservation": null, + "PurchaseOfferingResponse$Reservation": null, + "__listOfReservation$member": null + } + }, + "ReservationState": { + "base": null, + "refs": { + "Reservation$ReservationState": "The status of your reservation." + } + }, + "ResourceSpecification": { + "base": "A definition of what is being billed for, including the type and amount.", + "refs": { + "Offering$ResourceSpecification": "A definition of the amount of outbound bandwidth that you would be reserving if you purchase the offering.", + "Reservation$ResourceSpecification": "A definition of the amount of outbound bandwidth that you would be reserving if you purchase the offering. MediaConnect defines the values that make up the resourceSpecification in the offering." + } + }, + "ResourceType": { + "base": null, + "refs": { + "ResourceSpecification$ResourceType": "The type of resource and the unit that is being billed for." + } + }, "ResponseError": { "base": "Exception raised by AWS Elemental MediaConnect. See the error message and documentation for the operation for more information on the cause of this exception.", "refs": {} @@ -375,8 +452,11 @@ "FailoverConfig$RecoveryWindow": "Search window time to look for dash-7 packets", "GrantEntitlementRequest$DataTransferSubscriberFeePercent": "Percentage from 0-100 of the data transfer cost to be billed to the subscriber.", "ListedEntitlement$DataTransferSubscriberFeePercent": "Percentage from 0-100 of the data transfer cost to be billed to the subscriber.", + "Offering$Duration": "The length of time that your reservation would be active.", "Output$DataTransferSubscriberFeePercent": "Percentage from 0-100 of the data transfer cost to be billed to the subscriber.", "Output$Port": "The port to use when content is distributed to this output.", + "Reservation$Duration": "The length of time that this reservation is active. MediaConnect defines this value in the offering.", + "ResourceSpecification$ReservedBitrate": "The amount of outbound bandwidth that is discounted in the offering.", "SetSourceRequest$IngestPort": "The port that the flow will be listening on for incoming content.", "Source$DataTransferSubscriberFeePercent": "Percentage from 0-100 of the data transfer cost to be billed to the subscriber.", "Source$IngestPort": "The port that the flow will be listening on for incoming content.", @@ -429,6 +509,12 @@ "ListFlowsResponse$Flows": "A list of flow summaries." } }, + "__listOfOffering": { + "base": null, + "refs": { + "ListOfferingsResponse$Offerings": "A list of offerings that are available to this account in the current AWS Region." + } + }, "__listOfOutput": { "base": null, "refs": { @@ -436,6 +522,12 @@ "Flow$Outputs": "The outputs in this flow." } }, + "__listOfReservation": { + "base": null, + "refs": { + "ListReservationsResponse$Reservations": "A list of all reservations that have been purchased by this account in the current AWS Region." + } + }, "__listOfSetSourceRequest": { "base": null, "refs": { @@ -464,6 +556,10 @@ "CreateFlowRequest$VpcInterfaces": "The VPC interfaces you want on the flow." } }, + "__listOf__integer": { + "base": null, + "refs": {} + }, "__listOf__string": { "base": null, "refs": { @@ -521,24 +617,40 @@ "GrantFlowEntitlementsResponse$FlowArn": "The ARN of the flow that these entitlements were granted to.", "ListEntitlementsResponse$NextToken": "The token that identifies which batch of results that you want to see. For example, you submit a ListEntitlements request with MaxResults set at 5. The service returns the first batch of results (up to 5) and a NextToken value. To see the next batch of results, you can submit the ListEntitlements request a second time and specify the NextToken value.", "ListFlowsResponse$NextToken": "The token that identifies which batch of results that you want to see. For example, you submit a ListFlows request with MaxResults set at 5. The service returns the first batch of results (up to 5) and a NextToken value. To see the next batch of results, you can submit the ListFlows request a second time and specify the NextToken value.", + "ListOfferingsResponse$NextToken": "The token that identifies which batch of results that you want to see. For example, you submit a ListOfferings request with MaxResults set at 5. The service returns the first batch of results (up to 5) and a NextToken value. To see the next batch of results, you can submit the ListOfferings request a second time and specify the NextToken value.", + "ListReservationsResponse$NextToken": "The token that identifies which batch of results that you want to see. For example, you submit a ListReservations request with MaxResults set at 5. The service returns the first batch of results (up to 5) and a NextToken value. To see the next batch of results, you can submit the ListReservations request a second time and specify the NextToken value.", "ListedEntitlement$EntitlementArn": "The ARN of the entitlement.", "ListedEntitlement$EntitlementName": "The name of the entitlement.", "ListedFlow$AvailabilityZone": "The Availability Zone that the flow was created in.", "ListedFlow$Description": "A description of the flow.", "ListedFlow$FlowArn": "The ARN of the flow.", "ListedFlow$Name": "The name of the flow.", + "Offering$CurrencyCode": "The type of currency that is used for billing. The currencyCode used for all reservations is US dollars.", + "Offering$OfferingArn": "The Amazon Resource Name (ARN) that MediaConnect assigns to the offering.", + "Offering$OfferingDescription": "A description of the offering.", + "Offering$PricePerUnit": "The cost of a single unit. This value, in combination with priceUnits, makes up the rate.", "Output$Description": "A description of the output.", "Output$Destination": "The address where you want to send the output.", "Output$EntitlementArn": "The ARN of the entitlement on the originator''s flow. This value is relevant only on entitled flows.", "Output$MediaLiveInputArn": "The input ARN of the AWS Elemental MediaLive channel. This parameter is relevant only for outputs that were added by creating a MediaLive input.", "Output$Name": "The name of the output. This value must be unique within the current flow.", "Output$OutputArn": "The ARN of the output.", + "PurchaseOfferingRequest$ReservationName": "The name that you want to use for the reservation.", + "PurchaseOfferingRequest$Start": "The date and time that you want the reservation to begin, in Coordinated Universal Time (UTC). You can specify any date and time between 12:00am on the first day of the current month to the current time on today's date, inclusive. Specify the start in a 24-hour notation. Use the following format: YYYY-MM-DDTHH:mm:SSZ, where T and Z are literal characters. For example, to specify 11:30pm on March 5, 2020, enter 2020-03-05T23:30:00Z.", "RemoveFlowOutputResponse$FlowArn": "The ARN of the flow that is associated with the output you removed.", "RemoveFlowOutputResponse$OutputArn": "The ARN of the output that was removed.", "RemoveFlowSourceResponse$FlowArn": "The ARN of the flow that is associated with the source you removed.", "RemoveFlowSourceResponse$SourceArn": "The ARN of the source that was removed.", "RemoveFlowVpcInterfaceResponse$FlowArn": "The ARN of the flow that is associated with the VPC interface you removed.", "RemoveFlowVpcInterfaceResponse$VpcInterfaceName": "The name of the VPC interface that was removed.", + "Reservation$CurrencyCode": "The type of currency that is used for billing. The currencyCode used for your reservation is US dollars.", + "Reservation$End": "The day and time that this reservation expires. This value is calculated based on the start date and time that you set and the offering's duration.", + "Reservation$OfferingArn": "The Amazon Resource Name (ARN) that MediaConnect assigns to the offering.", + "Reservation$OfferingDescription": "A description of the offering. MediaConnect defines this value in the offering.", + "Reservation$PricePerUnit": "The cost of a single unit. This value, in combination with priceUnits, makes up the rate. MediaConnect defines this value in the offering.", + "Reservation$ReservationArn": "The Amazon Resource Name (ARN) that MediaConnect assigns to the reservation when you purchase an offering.", + "Reservation$ReservationName": "The name that you assigned to the reservation when you purchased the offering.", + "Reservation$Start": "The day and time that the reservation becomes active. You set this value when you purchase the offering.", "ResponseError$Message": "The error message returned by AWS Elemental MediaConnect.", "RevokeFlowEntitlementResponse$EntitlementArn": "The ARN of the entitlement that was revoked.", "RevokeFlowEntitlementResponse$FlowArn": "The ARN of the flow that the entitlement was revoked from.", @@ -591,4 +703,4 @@ } } } -} \ No newline at end of file +} diff --git a/models/apis/mediaconnect/2018-11-14/paginators-1.json b/models/apis/mediaconnect/2018-11-14/paginators-1.json index 92e6fc67dd5..e350ad5fa4f 100644 --- a/models/apis/mediaconnect/2018-11-14/paginators-1.json +++ b/models/apis/mediaconnect/2018-11-14/paginators-1.json @@ -11,6 +11,18 @@ "output_token" : "NextToken", "limit_key" : "MaxResults", "result_key" : "Flows" + }, + "ListOfferings" : { + "input_token" : "NextToken", + "output_token" : "NextToken", + "limit_key" : "MaxResults", + "result_key" : "Offerings" + }, + "ListReservations" : { + "input_token" : "NextToken", + "output_token" : "NextToken", + "limit_key" : "MaxResults", + "result_key" : "Reservations" } } } diff --git a/models/apis/pinpoint/2016-12-01/api-2.json b/models/apis/pinpoint/2016-12-01/api-2.json index 10cb9215b56..ba621144d96 100644 --- a/models/apis/pinpoint/2016-12-01/api-2.json +++ b/models/apis/pinpoint/2016-12-01/api-2.json @@ -3717,6 +3717,9 @@ }, { "shape": "TooManyRequestsException" + }, + { + "shape": "ConflictException" } ] }, @@ -5183,7 +5186,8 @@ "PENDING_NEXT_RUN", "COMPLETED", "PAUSED", - "DELETED" + "DELETED", + "INVALID" ] }, "CampaignsResponse": { @@ -5288,6 +5292,21 @@ } } }, + "ConflictException": { + "type": "structure", + "members": { + "Message": { + "shape": "__string" + }, + "RequestID": { + "shape": "__string" + } + }, + "exception": true, + "error": { + "httpStatusCode": 409 + } + }, "CreateAppRequest": { "type": "structure", "members": { @@ -6943,10 +6962,7 @@ "MessageActivity": { "shape": "__string" } - }, - "required": [ - "Dimensions" - ] + } }, "EventDimensions": { "type": "structure", @@ -6962,6 +6978,21 @@ } } }, + "EventFilter": { + "type": "structure", + "members": { + "Dimensions": { + "shape": "EventDimensions" + }, + "FilterType": { + "shape": "FilterType" + } + }, + "required": [ + "FilterType", + "Dimensions" + ] + }, "EventItemResponse": { "type": "structure", "members": { @@ -6973,6 +7004,17 @@ } } }, + "EventStartCondition": { + "type": "structure", + "members": { + "EventFilter": { + "shape": "EventFilter" + }, + "SegmentId": { + "shape": "__string" + } + } + }, "EventStream": { "type": "structure", "members": { @@ -10674,6 +10716,9 @@ "Description": { "shape": "__string" }, + "EventStartCondition": { + "shape": "EventStartCondition" + }, "SegmentStartCondition": { "shape": "SegmentCondition" } diff --git a/models/apis/pinpoint/2016-12-01/docs-2.json b/models/apis/pinpoint/2016-12-01/docs-2.json index 8e6fdb306d7..4bf98ea2929 100644 --- a/models/apis/pinpoint/2016-12-01/docs-2.json +++ b/models/apis/pinpoint/2016-12-01/docs-2.json @@ -314,11 +314,11 @@ } }, "CampaignLimits" : { - "base" : "

For a campaign, specifies limits on the messages that the campaign can send. For an application, specifies the default limits for messages that campaigns and journeys in the application can send.

", + "base" : "

For a campaign, specifies limits on the messages that the campaign can send. For an application, specifies the default limits for messages that campaigns in the application can send.

", "refs" : { - "ApplicationSettingsResource$Limits" : "

The default sending limits for campaigns and journeys in the application.

", + "ApplicationSettingsResource$Limits" : "

The default sending limits for campaigns in the application.

", "CampaignResponse$Limits" : "

The messaging limits for the campaign.

", - "WriteApplicationSettingsRequest$Limits" : "

The default sending limits for campaigns and journeys in the application. To override these limits and define custom limits for a specific campaign or journey, use the Campaign resource or the Journey resource, respectively.

", + "WriteApplicationSettingsRequest$Limits" : "

The default sending limits for campaigns in the application. To override these limits and define custom limits for a specific campaign or journey, use the Campaign resource or the Journey resource, respectively.

", "WriteCampaignRequest$Limits" : "

The messaging limits for the campaign.

" } }, @@ -379,11 +379,15 @@ } }, "ConditionalSplitActivity" : { - "base" : "

Specifies the settings for a yes/no split activity in a journey. This type of activity sends participants down one of two paths in a journey, based on conditions that you specify.

", + "base" : "

Specifies the settings for a yes/no split activity in a journey. This type of activity sends participants down one of two paths in a journey, based on conditions that you specify.

To create yes/no split activities that send participants down different paths based on push notification events (such as Open or Received events), your mobile app has to specify the User ID and Endpoint ID values. For more information, see Integrating Amazon Pinpoint with your application in the Amazon Pinpoint Developer Guide.

", "refs" : { "Activity$ConditionalSplit" : "

The settings for a yes/no split activity. This type of activity sends participants down one of two paths in a journey, based on conditions that you specify.

" } }, + "ConflictException" : { + "base" : "

Provides information about an API request or response.

", + "refs" : { } + }, "CreateApplicationRequest" : { "base" : "

Specifies the display name of an application and the tags to associate with the application.

", "refs" : { } @@ -569,7 +573,14 @@ "base" : "

Specifies the dimensions for an event filter that determines when a campaign is sent or a journey activity is performed.

", "refs" : { "CampaignEventFilter$Dimensions" : "

The dimension settings of the event filter for the campaign.

", - "EventCondition$Dimensions" : "

The dimensions for the event filter to use for the activity.

" + "EventCondition$Dimensions" : "

The dimensions for the event filter to use for the activity.

", + "EventFilter$Dimensions" : "

The dimensions for the event filter to use for the campaign or the journey activity.

" + } + }, + "EventFilter" : { + "base" : "

Specifies the settings for an event that causes a campaign to be sent or a journey activity to be performed.

", + "refs" : { + "EventStartCondition$EventFilter" : null } }, "EventItemResponse" : { @@ -578,6 +589,12 @@ "MapOfEventItemResponse$member" : null } }, + "EventStartCondition" : { + "base" : "

Specifies the settings for an event that causes a journey activity to start.

", + "refs" : { + "StartCondition$EventStartCondition" : null + } + }, "EventStream" : { "base" : "

Specifies settings for publishing event data to an Amazon Kinesis data stream or an Amazon Kinesis Data Firehose delivery stream.

", "refs" : { } @@ -619,7 +636,8 @@ "FilterType" : { "base" : null, "refs" : { - "CampaignEventFilter$FilterType" : "

The type of event that causes the campaign to be sent. Valid values are: SYSTEM, sends the campaign when a system event occurs; and, ENDPOINT, sends the campaign when an endpoint event (Events resource) occurs.

" + "CampaignEventFilter$FilterType" : "

The type of event that causes the campaign to be sent. Valid values are: SYSTEM, sends the campaign when a system event occurs; and, ENDPOINT, sends the campaign when an endpoint event (Events resource) occurs.

", + "EventFilter$FilterType" : "

The type of event that causes the campaign to be sent or the journey activity to be performed. Valid values are: SYSTEM, sends the campaign or performs the activity when a system event occurs; and, ENDPOINT, sends the campaign or performs the activity when an endpoint event (Events resource) occurs.

" } }, "ForbiddenException" : { @@ -851,7 +869,7 @@ } }, "MultiConditionalSplitActivity" : { - "base" : "

Specifies the settings for a multivariate split activity in a journey. This type of activity sends participants down one of as many as five paths (including a default Else path) in a journey, based on conditions that you specify.

", + "base" : "

Specifies the settings for a multivariate split activity in a journey. This type of activity sends participants down one of as many as five paths (including a default Else path) in a journey, based on conditions that you specify.

To create multivariate split activities that send participants down different paths based on push notification events (such as Open or Received events), your mobile app has to specify the User ID and Endpoint ID values. For more information, see Integrating Amazon Pinpoint with your application in the Amazon Pinpoint Developer Guide.

", "refs" : { "Activity$MultiCondition" : "

The settings for a multivariate split activity. This type of activity sends participants down one of as many as five paths (including a default Else path) in a journey, based on conditions that you specify.

" } @@ -901,10 +919,10 @@ "QuietTime" : { "base" : "

Specifies the start and end times that define a time range when messages aren't sent to endpoints.

", "refs" : { - "ApplicationSettingsResource$QuietTime" : "

The default quiet time for campaigns and journeys in the application. Quiet time is a specific time range when messages aren't sent to endpoints, if all the following conditions are met:

If any of the preceding conditions isn't met, the endpoint will receive messages from a campaign or journey, even if quiet time is enabled.

", + "ApplicationSettingsResource$QuietTime" : "

The default quiet time for campaigns in the application. Quiet time is a specific time range when messages aren't sent to endpoints, if all the following conditions are met:

If any of the preceding conditions isn't met, the endpoint will receive messages from a campaign or journey, even if quiet time is enabled.

", "JourneyResponse$QuietTime" : "

The quiet time settings for the journey. Quiet time is a specific time range when a journey doesn't send messages to participants, if all the following conditions are met:

If any of the preceding conditions isn't met, the participant will receive messages from the journey, even if quiet time is enabled.

", "Schedule$QuietTime" : "

The default quiet time for the campaign. Quiet time is a specific time range when a campaign doesn't send messages to endpoints, if all the following conditions are met:

If any of the preceding conditions isn't met, the endpoint will receive messages from the campaign, even if quiet time is enabled.

", - "WriteApplicationSettingsRequest$QuietTime" : "

The default quiet time for campaigns and journeys in the application. Quiet time is a specific time range when messages aren't sent to endpoints, if all the following conditions are met:

If any of the preceding conditions isn't met, the endpoint will receive messages from a campaign or journey, even if quiet time is enabled.

To override the default quiet time settings for a specific campaign or journey, use the Campaign resource or the Journey resource to define a custom quiet time for the campaign or journey.

", + "WriteApplicationSettingsRequest$QuietTime" : "

The default quiet time for campaigns in the application. Quiet time is a specific time range when messages aren't sent to endpoints, if all the following conditions are met:

If any of the preceding conditions isn't met, the endpoint will receive messages from a campaign or journey, even if quiet time is enabled.

To override the default quiet time settings for a specific campaign or journey, use the Campaign resource or the Journey resource to define a custom quiet time for the campaign or journey.

", "WriteJourneyRequest$QuietTime" : "

The quiet time settings for the journey. Quiet time is a specific time range when a journey doesn't send messages to participants, if all the following conditions are met:

If any of the preceding conditions isn't met, the participant will receive messages from the journey, even if quiet time is enabled.

" } }, @@ -1351,6 +1369,7 @@ "VoiceChannelResponse$HasCredential" : "

(Not used) This property is retained only for backward compatibility.

", "VoiceChannelResponse$IsArchived" : "

Specifies whether the voice channel is archived.

", "WriteApplicationSettingsRequest$CloudWatchMetricsEnabled" : "

Specifies whether to enable application-related alarms in Amazon CloudWatch.

", + "WriteApplicationSettingsRequest$EventTaggingEnabled" : null, "WriteCampaignRequest$IsPaused" : "

Specifies whether to pause the campaign. A paused campaign doesn't run unless you resume it by changing this value to false.

", "WriteJourneyRequest$LocalTime" : "

Specifies whether the journey's scheduled start and end times use each participant's local time. To base the schedule on each participant's local time, set this value to true.

" } @@ -1385,7 +1404,7 @@ "BaiduMessage$TimeToLive" : "

The amount of time, in seconds, that the Baidu Cloud Push service should store the message if the recipient's device is offline. The default value and maximum supported time is 604,800 seconds (7 days).

", "CampaignLimits$Daily" : "

The maximum number of messages that a campaign can send to a single endpoint during a 24-hour period. For an application, this value specifies the default limit for the number of messages that campaigns and journeys can send to a single endpoint during a 24-hour period. The maximum value is 100.

", "CampaignLimits$MaximumDuration" : "

The maximum amount of time, in seconds, that a campaign can attempt to deliver a message after the scheduled start time for the campaign. The minimum value is 60 seconds.

", - "CampaignLimits$MessagesPerSecond" : "

The maximum number of messages that a campaign can send each second. For an application, this value specifies the default limit for the number of messages that campaigns and journeys can send each second. The minimum value is 50. The maximum value is 20,000.

", + "CampaignLimits$MessagesPerSecond" : "

The maximum number of messages that a campaign can send each second. For an application, this value specifies the default limit for the number of messages that campaigns can send each second. The minimum value is 50. The maximum value is 20,000.

", "CampaignLimits$Total" : "

The maximum number of messages that a campaign can send to a single endpoint during the course of the campaign. If a campaign recurs, this setting applies to all runs of the campaign. The maximum value is 100.

", "CampaignResponse$HoldoutPercent" : "

The allocated percentage of users (segment members) who shouldn't receive messages from the campaign.

", "CampaignResponse$SegmentVersion" : "

The version number of the segment that's associated with the campaign.

", @@ -1599,7 +1618,7 @@ "MapOfAddressConfiguration" : { "base" : null, "refs" : { - "MessageRequest$Addresses" : "

A map of key-value pairs, where each key is an address and each value is an AddressConfiguration object. An address can be a push notification token, a phone number, or an email address. You can use an AddressConfiguration object to tailor the message for an address by specifying settings such as content overrides and message variables.

" + "MessageRequest$Addresses" : "

A map of key-value pairs, where each key is an address and each value is an AddressConfiguration object. An address can be a push notification token, a phone number, or an email address. You can use an AddressConfiguration object to tailor the message for an address by specifying settings such as content overrides and message variables.

" } }, "MapOfAttributeDimension" : { @@ -1626,8 +1645,8 @@ "MapOfEndpointSendConfiguration" : { "base" : null, "refs" : { - "MessageRequest$Endpoints" : "

A map of key-value pairs, where each key is an endpoint ID and each value is an EndpointSendConfiguration object. You can use an EndpointSendConfiguration object to tailor the message for an endpoint by specifying settings such as content overrides and message variables.

", - "SendUsersMessageRequest$Users" : "

A map that associates user IDs with EndpointSendConfiguration objects. You can use an EndpointSendConfiguration object to tailor the message for a user by specifying settings such as content overrides and message variables.

" + "MessageRequest$Endpoints" : "

A map of key-value pairs, where each key is an endpoint ID and each value is an EndpointSendConfiguration object. You can use an EndpointSendConfiguration object to tailor the message for an endpoint by specifying settings such as content overrides and message variables.

", + "SendUsersMessageRequest$Users" : "

A map that associates user IDs with EndpointSendConfiguration objects. You can use an EndpointSendConfiguration object to tailor the message for a user by specifying settings such as content overrides and message variables.

" } }, "MapOfEvent" : { @@ -1728,7 +1747,7 @@ "Event$Attributes" : "

One or more custom attributes that are associated with the event.

", "GCMMessage$Data" : "

The JSON data payload to use for the push notification, if the notification is a silent push notification. This payload is added to the data.pinpoint.jsonBody object of the notification.

", "JourneyExecutionActivityMetricsResponse$Metrics" : "

A JSON object that contains the results of the query. The results vary depending on the type of activity (ActivityType). For information about the structure and contents of the results, see the Amazon Pinpoint Developer Guide.

", - "JourneyExecutionMetricsResponse$Metrics" : "

A JSON object that contains the results of the query. For information about the structure and contents of the results, see the Amazon Pinpoint Developer Guide.

", + "JourneyExecutionMetricsResponse$Metrics" : "

A JSON object that contains the results of the query. For information about the structure and contents of the results, see the Amazon Pinpoint Developer Guide.

", "JourneyResponse$tags" : "

This object is not used or supported.

", "MessageRequest$Context" : "

A map of custom attributes to attach to the message. For a push notification, this payload is added to the data.pinpoint object. For an email or text message, this payload is added to email/SMS delivery receipt event attributes.

", "PushNotificationTemplateRequest$tags" : "

A string-to-string map of key-value pairs that defines the tags to associate with the message template. Each tag consists of a required tag key and an associated tag value.

", @@ -1942,7 +1961,7 @@ "CreateTemplateMessageBody$Message" : "

The message that's returned from the API for the request to create the message template.

", "CreateTemplateMessageBody$RequestID" : "

The unique identifier for the request to create the message template.

", "CustomDeliveryConfiguration$DeliveryUri" : "

The destination to send the campaign or treatment to. This value can be one of the following:

", - "CustomMessageActivity$DeliveryUri" : "

The destination to send the custom message to. This value can be one of the following:

", + "CustomMessageActivity$DeliveryUri" : "

The destination to send the campaign or treatment to. This value can be one of the following:

", "CustomMessageActivity$NextActivity" : "

The unique identifier for the next activity to perform, after Amazon Pinpoint calls the AWS Lambda function or web hook.

", "CustomMessageActivity$TemplateName" : "

The name of the custom message template to use for the message. If specified, this value must match the name of an existing message template.

", "CustomMessageActivity$TemplateVersion" : "

The unique identifier for the version of the message template to use for the message. If specified, this value must match the identifier for an existing template version. To retrieve a list of versions and version identifiers for a template, use the Template Versions resource.

If you don't specify a value for this property, Amazon Pinpoint uses the active version of the template. The active version is typically the version of a template that's been most recently reviewed and approved for use, depending on your workflow. It isn't necessarily the latest version of a template.

", @@ -2041,6 +2060,7 @@ "Event$Timestamp" : "

The date and time, in ISO 8601 format, when the event occurred.

", "EventCondition$MessageActivity" : "

The message identifier (message_id) for the message to use when determining whether message events meet the condition.

", "EventItemResponse$Message" : "

A custom message that's returned in the response as a result of processing the event.

", + "EventStartCondition$SegmentId" : null, "EventStream$ApplicationId" : "

The unique identifier for the application to publish event data for.

", "EventStream$DestinationStreamArn" : "

The Amazon Resource Name (ARN) of the Amazon Kinesis data stream or Amazon Kinesis Data Firehose delivery stream to publish event data to.

For a Kinesis data stream, the ARN format is: arn:aws:kinesis:region:account-id:stream/stream_name\n

For a Kinesis Data Firehose delivery stream, the ARN format is: arn:aws:firehose:region:account-id:deliverystream/stream_name\n

", "EventStream$ExternalId" : "

(Deprecated) Your AWS account ID, which you assigned to an external ID key in an IAM trust policy. Amazon Pinpoint previously used this value to assume an IAM role when publishing event data, but we removed this requirement. We don't recommend use of external IDs for IAM roles that are assumed by Amazon Pinpoint.

", @@ -2120,7 +2140,7 @@ "JourneyResponse$Name" : "

The name of the journey.

", "JourneyResponse$RefreshFrequency" : "

The frequency with which Amazon Pinpoint evaluates segment and event data for the journey, as a duration in ISO 8601 format.

", "JourneyResponse$StartActivity" : "

The unique identifier for the first activity in the journey.

", - "JourneySMSMessage$SenderId" : "

The sender ID to display as the sender of the message on a recipient's device. Support for sender IDs varies by country or region. For more information, see Supported Countries and Regions in the Amazon Pinpoint User Guide.

", + "JourneySMSMessage$SenderId" : "

The sender ID to display as the sender of the message on a recipient's device. Support for sender IDs varies by country or region. For more information, see Supported Countries and Regions in the Amazon Pinpoint User Guide.

", "JourneySchedule$EndTime" : "

The scheduled time, in ISO 8601 format, when the journey ended or will end.

", "JourneySchedule$StartTime" : "

The scheduled time, in ISO 8601 format, when the journey began or will begin.

", "JourneySchedule$Timezone" : "

The starting UTC offset for the journey schedule, if the value of the journey's LocalTime property is true. Valid values are: UTC,\n UTC+01, UTC+02, UTC+03, UTC+03:30, UTC+04, UTC+04:30, UTC+05, UTC+05:30,\n UTC+05:45, UTC+06, UTC+06:30, UTC+07, UTC+08, UTC+08:45, UTC+09, UTC+09:30,\n UTC+10, UTC+10:30, UTC+11, UTC+12, UTC+12:45, UTC+13, UTC+13:45, UTC-02,\n UTC-02:30, UTC-03, UTC-03:30, UTC-04, UTC-05, UTC-06, UTC-07, UTC-08, UTC-09,\n UTC-09:30, UTC-10, and UTC-11.

", @@ -2209,7 +2229,7 @@ "SMSChannelResponse$ShortCode" : "

The registered short code to use when you send messages through the SMS channel.

", "SMSMessage$Body" : "

The body of the SMS message.

", "SMSMessage$Keyword" : "

The SMS program name that you provided to AWS Support when you requested your dedicated number.

", - "SMSMessage$MediaUrl" : "

The URL of an image or video to display in the SMS message. This field is reserved for future use.

", + "SMSMessage$MediaUrl" : "

This field is reserved for future use.

", "SMSMessage$OriginationNumber" : "

The number to send the SMS message from. This value should be one of the dedicated long or short codes that's assigned to your AWS account. If you don't specify a long or short code, Amazon Pinpoint assigns a random long code to the SMS message and sends the message from that code.

", "SMSMessage$SenderId" : "

The sender ID to display as the sender of the message on a recipient's device. Support for sender IDs varies by country or region.

", "SMSMessageActivity$NextActivity" : "

The unique identifier for the next activity to perform, after the message is sent.

", @@ -2331,4 +2351,4 @@ } } } -} +} \ No newline at end of file diff --git a/models/apis/s3/2006-03-01/api-2.json b/models/apis/s3/2006-03-01/api-2.json index c889a148dc7..28f447fb07f 100644 --- a/models/apis/s3/2006-03-01/api-2.json +++ b/models/apis/s3/2006-03-01/api-2.json @@ -4882,7 +4882,8 @@ "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", - "DEEP_ARCHIVE" + "DEEP_ARCHIVE", + "OUTPOSTS" ] }, "ObjectVersion":{ @@ -6717,7 +6718,8 @@ "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", - "DEEP_ARCHIVE" + "DEEP_ARCHIVE", + "OUTPOSTS" ] }, "StorageClassAnalysis":{ diff --git a/models/apis/s3/2006-03-01/docs-2.json b/models/apis/s3/2006-03-01/docs-2.json index 454e6b74921..0c4ea4b8a65 100644 --- a/models/apis/s3/2006-03-01/docs-2.json +++ b/models/apis/s3/2006-03-01/docs-2.json @@ -5,9 +5,9 @@ "AbortMultipartUpload": "

This operation aborts a multipart upload. After a multipart upload is aborted, no additional parts can be uploaded using that upload ID. The storage consumed by any previously uploaded parts will be freed. However, if any part uploads are currently in progress, those part uploads might or might not succeed. As a result, it might be necessary to abort a given multipart upload multiple times in order to completely free all storage consumed by all parts.

To verify that all parts have been removed, so you don't get charged for the part storage, you should call the ListParts operation and ensure that the parts list is empty.

For information about permissions required to use the multipart upload API, see Multipart Upload API and Permissions.

The following operations are related to AbortMultipartUpload:

", "CompleteMultipartUpload": "

Completes a multipart upload by assembling previously uploaded parts.

You first initiate the multipart upload and then upload all parts using the UploadPart operation. After successfully uploading all relevant parts of an upload, you call this operation to complete the upload. Upon receiving this request, Amazon S3 concatenates all the parts in ascending order by part number to create a new object. In the Complete Multipart Upload request, you must provide the parts list. You must ensure that the parts list is complete. This operation concatenates the parts that you provide in the list. For each part in the list, you must provide the part number and the ETag value, returned after that part was uploaded.

Processing of a Complete Multipart Upload request could take several minutes to complete. After Amazon S3 begins processing the request, it sends an HTTP response header that specifies a 200 OK response. While processing is in progress, Amazon S3 periodically sends white space characters to keep the connection from timing out. Because a request could fail after the initial 200 OK response has been sent, it is important that you check the response body to determine whether the request succeeded.

Note that if CompleteMultipartUpload fails, applications should be prepared to retry the failed requests. For more information, see Amazon S3 Error Best Practices.

For more information about multipart uploads, see Uploading Objects Using Multipart Upload.

For information about permissions required to use the multipart upload API, see Multipart Upload API and Permissions.

CompleteMultipartUpload has the following special errors:

The following operations are related to CompleteMultipartUpload:

", "CopyObject": "

Creates a copy of an object that is already stored in Amazon S3.

You can store individual objects of up to 5 TB in Amazon S3. You create a copy of your object up to 5 GB in size in a single atomic operation using this API. However, to copy an object greater than 5 GB, you must use the multipart upload Upload Part - Copy API. For more information, see Copy Object Using the REST Multipart Upload API.

All copy requests must be authenticated. Additionally, you must have read access to the source object and write access to the destination bucket. For more information, see REST Authentication. Both the Region that you want to copy the object from and the Region that you want to copy the object to must be enabled for your account.

A copy request might return an error when Amazon S3 receives the copy request or while Amazon S3 is copying the files. If the error occurs before the copy operation starts, you receive a standard Amazon S3 error. If the error occurs during the copy operation, the error response is embedded in the 200 OK response. This means that a 200 OK response can contain either a success or an error. Design your application to parse the contents of the response and handle it appropriately.

If the copy is successful, you receive a response with information about the copied object.

If the request is an HTTP 1.1 request, the response is chunk encoded. If it were not, it would not contain the content-length, and you would need to read the entire body.

The copy request charge is based on the storage class and Region that you specify for the destination object. For pricing information, see Amazon S3 pricing.

Amazon S3 transfer acceleration does not support cross-Region copies. If you request a cross-Region copy using a transfer acceleration endpoint, you get a 400 Bad Request error. For more information, see Transfer Acceleration.

Metadata

When copying an object, you can preserve all metadata (default) or specify new metadata. However, the ACL is not preserved and is set to private for the user making the request. To override the default ACL setting, specify a new ACL when generating a copy request. For more information, see Using ACLs.

To specify whether you want the object metadata copied from the source object or replaced with metadata provided in the request, you can optionally add the x-amz-metadata-directive header. When you grant permissions, you can use the s3:x-amz-metadata-directive condition key to enforce certain metadata behavior when objects are uploaded. For more information, see Specifying Conditions in a Policy in the Amazon S3 Developer Guide. For a complete list of Amazon S3-specific condition keys, see Actions, Resources, and Condition Keys for Amazon S3.

x-amz-copy-source-if Headers

To only copy an object under certain conditions, such as whether the Etag matches or whether the object was modified before or after a specified date, use the following request parameters:

If both the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since headers are present in the request and evaluate as follows, Amazon S3 returns 200 OK and copies the data:

If both the x-amz-copy-source-if-none-match and x-amz-copy-source-if-modified-since headers are present in the request and evaluate as follows, Amazon S3 returns the 412 Precondition Failed response code:

All headers with the x-amz- prefix, including x-amz-copy-source, must be signed.

Encryption

The source object that you are copying can be encrypted or unencrypted. The source object can be encrypted with server-side encryption using AWS managed encryption keys (SSE-S3 or SSE-KMS) or by using a customer-provided encryption key. With server-side encryption, Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts the data when you access it.

You can optionally use the appropriate encryption-related headers to request server-side encryption for the target object. You have the option to provide your own encryption key or use SSE-S3 or SSE-KMS, regardless of the form of server-side encryption that was used to encrypt the source object. You can even request encryption if the source object was not encrypted. For more information about server-side encryption, see Using Server-Side Encryption.

Access Control List (ACL)-Specific Request Headers

When copying an object, you can optionally use headers to grant ACL-based permissions. By default, all objects are private. Only the owner has full access control. When adding a new object, you can grant permissions to individual AWS accounts or to predefined groups defined by Amazon S3. These permissions are then added to the ACL on the object. For more information, see Access Control List (ACL) Overview and Managing ACLs Using the REST API.

Storage Class Options

You can use the CopyObject operation to change the storage class of an object that is already stored in Amazon S3 using the StorageClass parameter. For more information, see Storage Classes in the Amazon S3 Service Developer Guide.

Versioning

By default, x-amz-copy-source identifies the current version of an object to copy. If the current version is a delete marker, Amazon S3 behaves as if the object was deleted. To copy a different version, use the versionId subresource.

If you enable versioning on the target bucket, Amazon S3 generates a unique version ID for the object being copied. This version ID is different from the version ID of the source object. Amazon S3 returns the version ID of the copied object in the x-amz-version-id response header in the response.

If you do not enable versioning or suspend it on the target bucket, the version ID that Amazon S3 generates is always null.

If the source object's storage class is GLACIER, you must restore a copy of this object before you can use it as a source object for the copy operation. For more information, see RestoreObject.

The following operations are related to CopyObject:

For more information, see Copying Objects.

", - "CreateBucket": "

Creates a new bucket. To create a bucket, you must register with Amazon S3 and have a valid AWS Access Key ID to authenticate requests. Anonymous requests are never allowed to create buckets. By creating the bucket, you become the bucket owner.

Not every string is an acceptable bucket name. For information on bucket naming restrictions, see Working with Amazon S3 Buckets.

By default, the bucket is created in the US East (N. Virginia) Region. You can optionally specify a Region in the request body. You might choose a Region to optimize latency, minimize costs, or address regulatory requirements. For example, if you reside in Europe, you will probably find it advantageous to create buckets in the Europe (Ireland) Region. For more information, see How to Select a Region for Your Buckets.

If you send your create bucket request to the s3.amazonaws.com endpoint, the request goes to the us-east-1 Region. Accordingly, the signature calculations in Signature Version 4 must use us-east-1 as the Region, even if the location constraint in the request specifies another Region where the bucket is to be created. If you create a bucket in a Region other than US East (N. Virginia), your application must be able to handle 307 redirect. For more information, see Virtual Hosting of Buckets.

When creating a bucket using this operation, you can optionally specify the accounts or groups that should be granted specific permissions on the bucket. There are two ways to grant the appropriate permissions using the request headers.

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

The following operations are related to CreateBucket:

", + "CreateBucket": "

Creates a new S3 bucket. To create a bucket, you must register with Amazon S3 and have a valid AWS Access Key ID to authenticate requests. Anonymous requests are never allowed to create buckets. By creating the bucket, you become the bucket owner.

Not every string is an acceptable bucket name. For information about bucket naming restrictions, see Working with Amazon S3 Buckets.

If you want to create an Amazon S3 on Outposts bucket, see Create Bucket.

By default, the bucket is created in the US East (N. Virginia) Region. You can optionally specify a Region in the request body. You might choose a Region to optimize latency, minimize costs, or address regulatory requirements. For example, if you reside in Europe, you will probably find it advantageous to create buckets in the Europe (Ireland) Region. For more information, see How to Select a Region for Your Buckets.

If you send your create bucket request to the s3.amazonaws.com endpoint, the request goes to the us-east-1 Region. Accordingly, the signature calculations in Signature Version 4 must use us-east-1 as the Region, even if the location constraint in the request specifies another Region where the bucket is to be created. If you create a bucket in a Region other than US East (N. Virginia), your application must be able to handle 307 redirect. For more information, see Virtual Hosting of Buckets.

When creating a bucket using this operation, you can optionally specify the accounts or groups that should be granted specific permissions on the bucket. There are two ways to grant the appropriate permissions using the request headers.

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

The following operations are related to CreateBucket:

", "CreateMultipartUpload": "

This operation initiates a multipart upload and returns an upload ID. This upload ID is used to associate all of the parts in the specific multipart upload. You specify this upload ID in each of your subsequent upload part requests (see UploadPart). You also include this upload ID in the final request to either complete or abort the multipart upload request.

For more information about multipart uploads, see Multipart Upload Overview.

If you have configured a lifecycle rule to abort incomplete multipart uploads, the upload must complete within the number of days specified in the bucket lifecycle configuration. Otherwise, the incomplete multipart upload becomes eligible for an abort operation and Amazon S3 aborts the multipart upload. For more information, see Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Policy.

For information about the permissions required to use the multipart upload API, see Multipart Upload API and Permissions.

For request signing, multipart upload is just a series of regular requests. You initiate a multipart upload, send one or more requests to upload parts, and then complete the multipart upload process. You sign each request individually. There is nothing special about signing multipart upload requests. For more information about signing, see Authenticating Requests (AWS Signature Version 4).

After you initiate a multipart upload and upload one or more parts, to stop being charged for storing the uploaded parts, you must either complete or abort the multipart upload. Amazon S3 frees up the space used to store the parts and stop charging you for storing them only after you either complete or abort a multipart upload.

You can optionally request server-side encryption. For server-side encryption, Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it when you access it. You can provide your own encryption key, or use AWS Key Management Service (AWS KMS) customer master keys (CMKs) or Amazon S3-managed encryption keys. If you choose to provide your own encryption key, the request headers you provide in UploadPart and UploadPartCopy requests must match the headers you used in the request to initiate the upload by using CreateMultipartUpload.

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*, and kms:DescribeKey actions on the key. These permissions are required because Amazon S3 must decrypt and read data from the encrypted file parts before it completes the multipart upload.

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 key policy. If your IAM user or role belongs to a different account than the key, then you must have the permissions on both the key policy and your IAM user or role.

For more information, see Protecting Data Using Server-Side Encryption.

Access Permissions

When copying an object, you can optionally specify the accounts or groups that should be granted specific permissions on the new object. There are two ways to grant the permissions using the request headers:

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

Server-Side- Encryption-Specific Request Headers

You can optionally tell Amazon S3 to encrypt data at rest using server-side encryption. Server-side encryption is for data encryption at rest. Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it when you access it. The option you use depends on whether you want to use AWS managed encryption keys or provide your own encryption key.

Access-Control-List (ACL)-Specific Request Headers

You also can use the following access control–related headers with this operation. By default, all objects are private. Only the owner has full access control. When adding a new object, you can grant permissions to individual AWS accounts or to predefined groups defined by Amazon S3. These permissions are then added to the access control list (ACL) on the object. For more information, see Using ACLs. With this operation, you can grant access permissions using one of the following two methods:

The following operations are related to CreateMultipartUpload:

", - "DeleteBucket": "

Deletes the bucket. All objects (including all object versions and delete markers) in the bucket must be deleted before the bucket itself can be deleted.

Related Resources

", + "DeleteBucket": "

Deletes the S3 bucket. All objects (including all object versions and delete markers) in the bucket must be deleted before the bucket itself can be deleted.

Related Resources

", "DeleteBucketAnalyticsConfiguration": "

Deletes an analytics configuration for the bucket (specified by the analytics configuration ID).

To use this operation, you must have permissions to perform the s3:PutAnalyticsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For information about the Amazon S3 analytics feature, see Amazon S3 Analytics – Storage Class Analysis.

The following operations are related to DeleteBucketAnalyticsConfiguration:

", "DeleteBucketCors": "

Deletes the cors configuration information set for the bucket.

To use this operation, you must have permission to perform the s3:PutBucketCORS action. The bucket owner has this permission by default and can grant this permission to others.

For information about cors, see Enabling Cross-Origin Resource Sharing in the Amazon Simple Storage Service Developer Guide.

Related Resources:

", "DeleteBucketEncryption": "

This implementation of the DELETE operation removes default encryption from the bucket. For information about the Amazon S3 default encryption feature, see Amazon S3 Default Bucket Encryption in the Amazon Simple Storage Service Developer Guide.

To use this operation, you must have permissions to perform the s3:PutEncryptionConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to your Amazon S3 Resources in the Amazon Simple Storage Service Developer Guide.

Related Resources

", @@ -29,7 +29,7 @@ "GetBucketEncryption": "

Returns the default encryption configuration for an Amazon S3 bucket. For information about the Amazon S3 default encryption feature, see Amazon S3 Default Bucket Encryption.

To use this operation, you must have permission to perform the s3:GetEncryptionConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

The following operations are related to GetBucketEncryption:

", "GetBucketInventoryConfiguration": "

Returns an inventory configuration (identified by the inventory configuration ID) from the bucket.

To use this operation, you must have permissions to perform the s3:GetInventoryConfiguration action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For information about the Amazon S3 inventory feature, see Amazon S3 Inventory.

The following operations are related to GetBucketInventoryConfiguration:

", "GetBucketLifecycle": "

For an updated version of this API, see GetBucketLifecycleConfiguration. If you configured a bucket lifecycle using the filter element, you should see the updated version of this topic. This topic is provided for backward compatibility.

Returns the lifecycle configuration information set on the bucket. For information about lifecycle configuration, see Object Lifecycle Management.

To use this operation, you must have permission to perform the s3:GetLifecycleConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

GetBucketLifecycle has the following special error:

The following operations are related to GetBucketLifecycle:

", - "GetBucketLifecycleConfiguration": "

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. Accordingly, this section describes the latest API. The response describes the new filter element that you can use to specify a filter to select a subset of objects to which the rule applies. If you are still using previous version of the lifecycle configuration, it works. For the earlier API description, see GetBucketLifecycle.

Returns the lifecycle configuration information set on the bucket. For information about lifecycle configuration, see Object Lifecycle Management.

To use this operation, you must have permission to perform the s3:GetLifecycleConfiguration action. The bucket owner has this permission, by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

GetBucketLifecycleConfiguration has the following special error:

The following operations are related to GetBucketLifecycleConfiguration:

", + "GetBucketLifecycleConfiguration": "

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. Accordingly, this section describes the latest API. The response describes the new filter element that you can use to specify a filter to select a subset of objects to which the rule applies. If you are using a previous version of the lifecycle configuration, it still works. For the earlier API description, see GetBucketLifecycle.

Returns the lifecycle configuration information set on the bucket. For information about lifecycle configuration, see Object Lifecycle Management.

To use this operation, you must have permission to perform the s3:GetLifecycleConfiguration action. The bucket owner has this permission, by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

GetBucketLifecycleConfiguration has the following special error:

The following operations are related to GetBucketLifecycleConfiguration:

", "GetBucketLocation": "

Returns the Region the bucket resides in. You set the bucket's Region using the LocationConstraint request parameter in a CreateBucket request. For more information, see CreateBucket.

To use this implementation of the operation, you must be the bucket owner.

The following operations are related to GetBucketLocation:

", "GetBucketLogging": "

Returns the logging status of a bucket and the permissions users have to view and modify that status. To use GET, you must be the bucket owner.

The following operations are related to GetBucketLogging:

", "GetBucketMetricsConfiguration": "

Gets a metrics configuration (specified by the metrics configuration ID) from the bucket. Note that this doesn't include the daily storage metrics.

To use this operation, you must have permissions to perform the s3:GetMetricsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For information about CloudWatch request metrics for Amazon S3, see Monitoring Metrics with Amazon CloudWatch.

The following operations are related to GetBucketMetricsConfiguration:

", @@ -43,12 +43,12 @@ "GetBucketVersioning": "

Returns the versioning state of a bucket.

To retrieve the versioning state of a bucket, you must be the bucket owner.

This implementation also returns the MFA Delete status of the versioning state. If the MFA Delete status is enabled, the bucket owner must use an authentication device to change the versioning state of the bucket.

The following operations are related to GetBucketVersioning:

", "GetBucketWebsite": "

Returns the website configuration for a bucket. To host website on Amazon S3, you can configure a bucket as website by adding a website configuration. For more information about hosting websites, see Hosting Websites on Amazon S3.

This GET operation requires the S3:GetBucketWebsite permission. By default, only the bucket owner can read the bucket website configuration. However, bucket owners can allow other users to read the website configuration by writing a bucket policy granting them the S3:GetBucketWebsite permission.

The following operations are related to DeleteBucketWebsite:

", "GetObject": "

Retrieves objects from Amazon S3. To use GET, you must have READ access to the object. If you grant READ access to the anonymous user, you can return the object without using an authorization header.

An Amazon S3 bucket has no directory hierarchy such as you would find in a typical computer file system. You can, however, create a logical hierarchy by using object key names that imply a folder structure. For example, instead of naming an object sample.jpg, you can name it photos/2006/February/sample.jpg.

To get an object from such a logical hierarchy, specify the full key name for the object in the GET operation. For a virtual hosted-style request example, if you have the object photos/2006/February/sample.jpg, specify the resource as /photos/2006/February/sample.jpg. For a path-style request example, if you have the object photos/2006/February/sample.jpg in the bucket named examplebucket, specify the resource as /examplebucket/photos/2006/February/sample.jpg. For more information about request types, see HTTP Host Header Bucket Specification.

To distribute large files to many people, you can save bandwidth costs by using BitTorrent. For more information, see Amazon S3 Torrent. For more information about returning the ACL of an object, see GetObjectAcl.

If the object you are retrieving is stored in the GLACIER or DEEP_ARCHIVE storage classes, before you can retrieve the object you must first restore a copy using RestoreObject. Otherwise, this operation returns an InvalidObjectStateError error. For information about restoring archived objects, see Restoring Archived Objects.

Encryption request headers, like x-amz-server-side-encryption, should not be sent for GET requests if your object uses server-side encryption with CMKs stored in AWS KMS (SSE-KMS) or server-side encryption with Amazon S3–managed encryption keys (SSE-S3). If your object does use these types of keys, you’ll get an HTTP 400 BadRequest error.

If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you GET the object, you must use the following headers:

For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys).

Assuming you have permission to read object tags (permission for the s3:GetObjectVersionTagging action), the response also returns the x-amz-tagging-count header that provides the count of number of tags associated with the object. You can use GetObjectTagging to retrieve the tag set associated with an object.

Permissions

You need the s3:GetObject permission for this operation. For more information, see Specifying Permissions in a Policy. If the object you request does not exist, the error Amazon S3 returns depends on whether you also have the s3:ListBucket permission.

Versioning

By default, the GET operation returns the current version of an object. To return a different version, use the versionId subresource.

If the current version of the object is a delete marker, Amazon S3 behaves as if the object was deleted and includes x-amz-delete-marker: true in the response.

For more information about versioning, see PutBucketVersioning.

Overriding Response Header Values

There are times when you want to override certain response header values in a GET response. For example, you might override the Content-Disposition response header value in your GET request.

You can override values for a set of response headers using the following query parameters. These response header values are sent only on a successful request, that is, when status code 200 OK is returned. The set of headers you can override using these parameters is a subset of the headers that Amazon S3 accepts when you create an object. The response headers that you can override for the GET response are Content-Type, Content-Language, Expires, Cache-Control, Content-Disposition, and Content-Encoding. To override these header values in the GET response, you use the following request parameters.

You must sign the request, either using an Authorization header or a presigned URL, when using these parameters. They cannot be used with an unsigned (anonymous) request.

Additional Considerations about Request Headers

If both of the If-Match and If-Unmodified-Since headers are present in the request as follows: If-Match condition evaluates to true, and; If-Unmodified-Since condition evaluates to false; then, S3 returns 200 OK and the data requested.

If both of the If-None-Match and If-Modified-Since headers are present in the request as follows: If-None-Match condition evaluates to false, and; If-Modified-Since condition evaluates to true; then, S3 returns 304 Not Modified response code.

For more information about conditional requests, see RFC 7232.

The following operations are related to GetObject:

", - "GetObjectAcl": "

Returns the access control list (ACL) of an object. To use this operation, you must have READ_ACP access to the object.

Versioning

By default, GET returns ACL information about the current version of an object. To return ACL information about a different version, use the versionId subresource.

The following operations are related to GetObjectAcl:

", - "GetObjectLegalHold": "

Gets an object's current Legal Hold status. For more information, see Locking Objects.

", + "GetObjectAcl": "

Returns the access control list (ACL) of an object. To use this operation, you must have READ_ACP access to the object.

This action is not supported by Amazon S3 on Outposts.

Versioning

By default, GET returns ACL information about the current version of an object. To return ACL information about a different version, use the versionId subresource.

The following operations are related to GetObjectAcl:

", + "GetObjectLegalHold": "

Gets an object's current Legal Hold status. For more information, see Locking Objects.

This action is not supported by Amazon S3 on Outposts.

", "GetObjectLockConfiguration": "

Gets the Object Lock configuration for a bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see Locking Objects.

", - "GetObjectRetention": "

Retrieves an object's retention settings. For more information, see Locking Objects.

", + "GetObjectRetention": "

Retrieves an object's retention settings. For more information, see Locking Objects.

This action is not supported by Amazon S3 on Outposts.

", "GetObjectTagging": "

Returns the tag-set of an object. You send the GET request against the tagging subresource associated with the object.

To use this operation, you must have permission to perform the s3:GetObjectTagging action. By default, the GET operation returns information about current version of an object. For a versioned bucket, you can have multiple versions of an object in your bucket. To retrieve tags of any other version, use the versionId query parameter. You also need permission for the s3:GetObjectVersionTagging action.

By default, the bucket owner has this permission and can grant this permission to others.

For information about the Amazon S3 object tagging feature, see Object Tagging.

The following operation is related to GetObjectTagging:

", - "GetObjectTorrent": "

Return torrent files from a bucket. BitTorrent can save you bandwidth when you're distributing large files. For more information about BitTorrent, see Amazon S3 Torrent.

You can get torrent only for objects that are less than 5 GB in size and that are not encrypted using server-side encryption with customer-provided encryption key.

To use GET, you must have READ access to the object.

The following operation is related to GetObjectTorrent:

", + "GetObjectTorrent": "

Returns torrent files from a bucket. BitTorrent can save you bandwidth when you're distributing large files. For more information about BitTorrent, see Using BitTorrent with Amazon S3.

You can get torrent only for objects that are less than 5 GB in size, and that are not encrypted using server-side encryption with a customer-provided encryption key.

To use GET, you must have READ access to the object.

This action is not supported by Amazon S3 on Outposts.

The following operation is related to GetObjectTorrent:

", "GetPublicAccessBlock": "

Retrieves the PublicAccessBlock configuration for an Amazon S3 bucket. To use this operation, you must have the s3:GetBucketPublicAccessBlock permission. For more information about Amazon S3 permissions, see Specifying Permissions in a Policy.

When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or an object, it checks the PublicAccessBlock configuration for both the bucket (or the bucket that contains the object) and the bucket owner's account. If the PublicAccessBlock settings are different between the bucket and the account, Amazon S3 uses the most restrictive combination of the bucket-level and account-level settings.

For more information about when Amazon S3 considers a bucket or an object public, see The Meaning of \"Public\".

The following operations are related to GetPublicAccessBlock:

", "HeadBucket": "

This operation is useful to determine if a bucket exists and you have permission to access it. The operation returns a 200 OK if the bucket exists and you have permission to access it. Otherwise, the operation might return responses such as 404 Not Found and 403 Forbidden.

To use this operation, you must have permissions to perform the s3:ListBucket action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

", "HeadObject": "

The HEAD operation retrieves metadata from an object without returning the object itself. This operation is useful if you're only interested in an object's metadata. To use HEAD, you must have READ access to the object.

A HEAD request has the same options as a GET operation on an object. The response is identical to the GET response except that there is no response body.

If you encrypt an object by using server-side encryption with customer-provided encryption keys (SSE-C) when you store the object in Amazon S3, then when you retrieve the metadata from the object, you must use the following headers:

For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys).

Encryption request headers, like x-amz-server-side-encryption, should not be sent for GET requests if your object uses server-side encryption with CMKs stored in AWS KMS (SSE-KMS) or server-side encryption with Amazon S3–managed encryption keys (SSE-S3). If your object does use these types of keys, you’ll get an HTTP 400 BadRequest error.

Request headers are limited to 8 KB in size. For more information, see Common Request Headers.

Consider the following when using request headers:

For more information about conditional requests, see RFC 7232.

Permissions

You need the s3:GetObject permission for this operation. For more information, see Specifying Permissions in a Policy. If the object you request does not exist, the error Amazon S3 returns depends on whether you also have the s3:ListBucket permission.

The following operation is related to HeadObject:

", @@ -57,7 +57,7 @@ "ListBucketMetricsConfigurations": "

Lists the metrics configurations for the bucket. The metrics configurations are only for the request metrics of the bucket and do not provide information on daily storage metrics. You can have up to 1,000 configurations per bucket.

This operation supports list pagination and does not return more than 100 configurations at a time. Always check the IsTruncated element in the response. If there are no more configurations to list, IsTruncated is set to false. If there are more configurations to list, IsTruncated is set to true, and there is a value in NextContinuationToken. You use the NextContinuationToken value to continue the pagination of the list by passing the value in continuation-token in the request to GET the next page.

To use this operation, you must have permissions to perform the s3:GetMetricsConfiguration action. The bucket owner has this permission by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

For more information about metrics configurations and CloudWatch request metrics, see Monitoring Metrics with Amazon CloudWatch.

The following operations are related to ListBucketMetricsConfigurations:

", "ListBuckets": "

Returns a list of all buckets owned by the authenticated sender of the request.

", "ListMultipartUploads": "

This operation lists in-progress multipart uploads. An in-progress multipart upload is a multipart upload that has been initiated using the Initiate Multipart Upload request, but has not yet been completed or aborted.

This operation returns at most 1,000 multipart uploads in the response. 1,000 multipart uploads is the maximum number of uploads a response can include, which is also the default value. You can further limit the number of uploads in a response by specifying the max-uploads parameter in the response. If additional multipart uploads satisfy the list criteria, the response will contain an IsTruncated element with the value true. To list the additional multipart uploads, use the key-marker and upload-id-marker request parameters.

In the response, the uploads are sorted by key. If your application has initiated more than one multipart upload using the same object key, then uploads in the response are first sorted by key. Additionally, uploads are sorted in ascending order within each key by the upload initiation time.

For more information on multipart uploads, see Uploading Objects Using Multipart Upload.

For information on permissions required to use the multipart upload API, see Multipart Upload API and Permissions.

The following operations are related to ListMultipartUploads:

", - "ListObjectVersions": "

Returns metadata about all of the versions of objects in a bucket. You can also use request parameters as selection criteria to return metadata about a subset of all the object versions.

A 200 OK response can contain valid or invalid XML. Make sure to design your application to parse the contents of the response and handle it appropriately.

To use this operation, you must have READ access to the bucket.

The following operations are related to ListObjectVersions:

", + "ListObjectVersions": "

Returns metadata about all versions of the objects in a bucket. You can also use request parameters as selection criteria to return metadata about a subset of all the object versions.

A 200 OK response can contain valid or invalid XML. Make sure to design your application to parse the contents of the response and handle it appropriately.

To use this operation, you must have READ access to the bucket.

This action is not supported by Amazon S3 on Outposts.

The following operations are related to ListObjectVersions:

", "ListObjects": "

Returns some or all (up to 1,000) of the objects in a bucket. You can use the request parameters as selection criteria to return a subset of the objects in a bucket. A 200 OK response can contain valid or invalid XML. Be sure to design your application to parse the contents of the response and handle it appropriately.

This API has been revised. We recommend that you use the newer version, ListObjectsV2, when developing applications. For backward compatibility, Amazon S3 continues to support ListObjects.

The following operations are related to ListObjects:

", "ListObjectsV2": "

Returns some or all (up to 1,000) of the objects in a bucket. You can use the request parameters as selection criteria to return a subset of the objects in a bucket. A 200 OK response can contain valid or invalid XML. Make sure to design your application to parse the contents of the response and handle it appropriately.

To use this operation, you must have READ access to the bucket.

To use this operation in an AWS Identity and Access Management (IAM) policy, you must have permissions to perform the s3:ListBucket action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

This section describes the latest revision of the API. We recommend that you use this revised API for application development. For backward compatibility, Amazon S3 continues to support the prior version of this API, ListObjects.

To get a list of your buckets, see ListBuckets.

The following operations are related to ListObjectsV2:

", "ListParts": "

Lists the parts that have been uploaded for a specific multipart upload. This operation must include the upload ID, which you obtain by sending the initiate multipart upload request (see CreateMultipartUpload). This request returns a maximum of 1,000 uploaded parts. The default number of parts returned is 1,000 parts. You can restrict the number of parts returned by specifying the max-parts request parameter. If your multipart upload consists of more than 1,000 parts, the response returns an IsTruncated field with the value of true, and a NextPartNumberMarker element. In subsequent ListParts requests you can include the part-number-marker query string parameter and set its value to the NextPartNumberMarker field value from the previous response.

For more information on multipart uploads, see Uploading Objects Using Multipart Upload.

For information on permissions required to use the multipart upload API, see Multipart Upload API and Permissions.

The following operations are related to ListParts:

", @@ -80,16 +80,16 @@ "PutBucketVersioning": "

Sets the versioning state of an existing bucket. To set the versioning state, you must be the bucket owner.

You can set the versioning state with one of the following values:

Enabled—Enables versioning for the objects in the bucket. All objects added to the bucket receive a unique version ID.

Suspended—Disables versioning for the objects in the bucket. All objects added to the bucket receive the version ID null.

If the versioning state has never been set on a bucket, it has no versioning state; a GetBucketVersioning request does not return a versioning state value.

If the bucket owner enables MFA Delete in the bucket versioning configuration, the bucket owner must include the x-amz-mfa request header and the Status and the MfaDelete request elements in a request to set the versioning state of the bucket.

If you have an object expiration lifecycle policy in your non-versioned bucket and you want to maintain the same permanent delete behavior when you enable versioning, you must add a noncurrent expiration policy. The noncurrent expiration lifecycle policy will manage the deletes of the noncurrent object versions in the version-enabled bucket. (A version-enabled bucket maintains one current and zero or more noncurrent object versions.) For more information, see Lifecycle and Versioning.

Related Resources

", "PutBucketWebsite": "

Sets the configuration of the website that is specified in the website subresource. To configure a bucket as a website, you can add this subresource on the bucket with website configuration information such as the file name of the index document and any redirect rules. For more information, see Hosting Websites on Amazon S3.

This PUT operation requires the S3:PutBucketWebsite permission. By default, only the bucket owner can configure the website attached to a bucket; however, bucket owners can allow other users to set the website configuration by writing a bucket policy that grants them the S3:PutBucketWebsite permission.

To redirect all website requests sent to the bucket's website endpoint, you add a website configuration with the following elements. Because all requests are sent to another website, you don't need to provide index document name for the bucket.

If you want granular control over redirects, you can use the following elements to add routing rules that describe conditions for redirecting requests and information about the redirect destination. In this case, the website configuration must provide an index document for the bucket, because some requests might not be redirected.

Amazon S3 has a limitation of 50 routing rules per website configuration. If you require more than 50 routing rules, you can use object redirect. For more information, see Configuring an Object Redirect in the Amazon Simple Storage Service Developer Guide.

", "PutObject": "

Adds an object to a bucket. You must have WRITE permissions on a bucket to add an object to it.

Amazon S3 never adds partial objects; if you receive a success response, Amazon S3 added the entire object to the bucket.

Amazon S3 is a distributed system. If it receives multiple write requests for the same object simultaneously, it overwrites all but the last object written. Amazon S3 does not provide object locking; if you need this, make sure to build it into your application layer or use versioning instead.

To ensure that data is not corrupted traversing the network, use the Content-MD5 header. When you use this header, Amazon S3 checks the object against the provided MD5 value and, if they do not match, returns an error. Additionally, you can calculate the MD5 while putting an object to Amazon S3 and compare the returned ETag to the calculated MD5 value.

The Content-MD5 header is required for any request to upload an object with a retention period configured using Amazon S3 Object Lock. For more information about Amazon S3 Object Lock, see Amazon S3 Object Lock Overview in the Amazon Simple Storage Service Developer Guide.

Server-side Encryption

You can optionally request server-side encryption. With server-side encryption, Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts the data when you access it. You have the option to provide your own encryption key or use AWS managed encryption keys. For more information, see Using Server-Side Encryption.

Access Control List (ACL)-Specific Request Headers

You can use headers to grant ACL- based permissions. By default, all objects are private. Only the owner has full access control. When adding a new object, you can grant permissions to individual AWS accounts or to predefined groups defined by Amazon S3. These permissions are then added to the ACL on the object. For more information, see Access Control List (ACL) Overview and Managing ACLs Using the REST API.

Storage Class Options

By default, Amazon S3 uses the STANDARD storage class to store newly created objects. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different storage class. For more information, see Storage Classes in the Amazon S3 Service Developer Guide.

Versioning

If you enable versioning for a bucket, Amazon S3 automatically generates a unique version ID for the object being stored. Amazon S3 returns this ID in the response. When you enable versioning for a bucket, if Amazon S3 receives multiple write requests for the same object simultaneously, it stores all of the objects.

For more information about versioning, see Adding Objects to Versioning Enabled Buckets. For information about returning the versioning state of a bucket, see GetBucketVersioning.

Related Resources

", - "PutObjectAcl": "

Uses the acl subresource to set the access control list (ACL) permissions for an object that already exists in an S3 bucket. You must have WRITE_ACP permission to set the ACL of an object. For more information, see What permissions can I grant? in the Amazon Simple Storage Service Developer Guide.

Depending on your application needs, you can choose to set the ACL on an object using either the request body or the headers. For example, if you 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 Control List (ACL) Overview in the Amazon S3 Developer Guide.

Access Permissions

You can set access permissions using one of the following methods:

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

Grantee Values

You can specify the person (grantee) to whom you're assigning access rights (using request elements) in the following ways:

Versioning

The ACL of an object is set at the object version level. By default, PUT sets the ACL of the current version of an object. To set the ACL of a different version, use the versionId subresource.

Related Resources

", - "PutObjectLegalHold": "

Applies a Legal Hold configuration to the specified object.

Related Resources

", + "PutObjectAcl": "

Uses the acl subresource to set the access control list (ACL) permissions for a new or existing object in an S3 bucket. You must have WRITE_ACP permission to set the ACL of an object. For more information, see What permissions can I grant? in the Amazon Simple Storage Service Developer Guide.

This action is not supported by Amazon S3 on Outposts.

Depending on your application needs, you can choose to set the ACL on an object using either the request body or the headers. For example, if you 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 Control List (ACL) Overview in the Amazon S3 Developer Guide.

Access Permissions

You can set access permissions using one of the following methods:

You can use either a canned ACL or specify access permissions explicitly. You cannot do both.

Grantee Values

You can specify the person (grantee) to whom you're assigning access rights (using request elements) in the following ways:

Versioning

The ACL of an object is set at the object version level. By default, PUT sets the ACL of the current version of an object. To set the ACL of a different version, use the versionId subresource.

Related Resources

", + "PutObjectLegalHold": "

Applies a Legal Hold configuration to the specified object.

This action is not supported by Amazon S3 on Outposts.

Related Resources

", "PutObjectLockConfiguration": "

Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket.

DefaultRetention requires either Days or Years. You can't specify both at the same time.

Related Resources

", - "PutObjectRetention": "

Places an Object Retention configuration on an object.

Related Resources

", - "PutObjectTagging": "

Sets the supplied tag-set to an object that already exists in a bucket.

A tag is a key-value pair. You can associate tags with an object by sending a PUT request against the tagging subresource that is associated with the object. You can retrieve tags by sending a GET request. For more information, see GetObjectTagging.

For tagging-related restrictions related to characters and encodings, see Tag Restrictions. Note that Amazon S3 limits the maximum number of tags to 10 tags per object.

To use this operation, you must have permission to perform the s3:PutObjectTagging action. By default, the bucket owner has this permission and can grant this permission to others.

To put tags of any other version, use the versionId query parameter. You also need permission for the s3:PutObjectVersionTagging action.

For information about the Amazon S3 object tagging feature, see Object Tagging.

Special Errors

Related Resources

", + "PutObjectRetention": "

Places an Object Retention configuration on an object.

This action is not supported by Amazon S3 on Outposts.

Related Resources

", + "PutObjectTagging": "

Sets the supplied tag-set to an object that already exists in a bucket.

A tag is a key-value pair. You can associate tags with an object by sending a PUT request against the tagging subresource that is associated with the object. You can retrieve tags by sending a GET request. For more information, see GetObjectTagging.

For tagging-related restrictions related to characters and encodings, see Tag Restrictions. Note that Amazon S3 limits the maximum number of tags to 10 tags per object.

To use this operation, you must have permission to perform the s3:PutObjectTagging action. By default, the bucket owner has this permission and can grant this permission to others.

To put tags of any other version, use the versionId query parameter. You also need permission for the s3:PutObjectVersionTagging action.

For information about the Amazon S3 object tagging feature, see Object Tagging.

Special Errors

Related Resources

", "PutPublicAccessBlock": "

Creates or modifies the PublicAccessBlock configuration for an Amazon S3 bucket. To use this operation, you must have the s3:PutBucketPublicAccessBlock permission. For more information about Amazon S3 permissions, see Specifying Permissions in a Policy.

When Amazon S3 evaluates the PublicAccessBlock configuration for a bucket or an object, it checks the PublicAccessBlock configuration for both the bucket (or the bucket that contains the object) and the bucket owner's account. If the PublicAccessBlock configurations are different between the bucket and the account, Amazon S3 uses the most restrictive combination of the bucket-level and account-level settings.

For more information about when Amazon S3 considers a bucket or an object public, see The Meaning of \"Public\".

Related Resources

", - "RestoreObject": "

Restores an archived copy of an object back into Amazon S3

This operation performs the following types of requests:

To use this operation, you must have permissions to perform the s3:RestoreObject action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources in the Amazon Simple Storage Service Developer Guide.

Querying Archives with Select Requests

You use a select type of request to perform SQL queries on archived objects. The archived objects that are being queried by the select request must be formatted as uncompressed comma-separated values (CSV) files. You can run queries and custom analytics on your archived data without having to restore your data to a hotter Amazon S3 tier. For an overview about select requests, see Querying Archived Objects in the Amazon Simple Storage Service Developer Guide.

When making a select request, do the following:

For more information about using SQL with S3 Glacier Select restore, see SQL Reference for Amazon S3 Select and S3 Glacier Select in the Amazon Simple Storage Service Developer Guide.

When making a select request, you can also do the following:

The following are additional important facts about the select feature:

Restoring Archives

Objects in the GLACIER and DEEP_ARCHIVE storage classes are archived. To access an archived object, you must first initiate a restore request. This restores a temporary copy of the archived object. In a restore request, you specify the number of days that you want the restored copy to exist. After the specified period, Amazon S3 deletes the temporary copy but the object remains archived in the GLACIER or DEEP_ARCHIVE storage class that object was restored from.

To restore a specific object version, you can provide a version ID. If you don't provide a version ID, Amazon S3 restores the current version.

The time it takes restore jobs to finish depends on which storage class the object is being restored from and which data access tier you specify.

When restoring an archived object (or using a select request), you can specify one of the following data access tier options in the Tier element of the request body:

For more information about archive retrieval options and provisioned capacity for Expedited data access, see Restoring Archived Objects in the Amazon Simple Storage Service Developer Guide.

You can use Amazon S3 restore speed upgrade to change the restore speed to a faster speed while it is in progress. You upgrade the speed of an in-progress restoration by issuing another restore request to the same object, setting a new Tier request element. When issuing a request to upgrade the restore tier, you must choose a tier that is faster than the tier that the in-progress restore is using. You must not change any other parameters, such as the Days request element. For more information, see Upgrading the Speed of an In-Progress Restore in the Amazon Simple Storage Service Developer Guide.

To get the status of object restoration, you can send a HEAD request. Operations return the x-amz-restore header, which provides information about the restoration status, in the response. You can use Amazon S3 event notifications to notify you when a restore is initiated or completed. For more information, see Configuring Amazon S3 Event Notifications in the Amazon Simple Storage Service Developer Guide.

After restoring an archived object, you can update the restoration period by reissuing the request with a new period. Amazon S3 updates the restoration period relative to the current time and charges only for the request-there are no data transfer charges. You cannot update the restoration period when Amazon S3 is actively processing your current restore request for the object.

If your bucket has a lifecycle configuration with a rule that includes an expiration action, the object expiration overrides the life span that you specify in a restore request. For example, if you restore an object copy for 10 days, but the object is scheduled to expire in 3 days, Amazon S3 deletes the object in 3 days. For more information about lifecycle configuration, see PutBucketLifecycleConfiguration and Object Lifecycle Management in Amazon Simple Storage Service Developer Guide.

Responses

A successful operation returns either the 200 OK or 202 Accepted status code.

Special Errors

Related Resources

", - "SelectObjectContent": "

This operation filters the contents of an Amazon S3 object based on a simple structured query language (SQL) statement. In the request, along with the SQL expression, you must also specify a data serialization format (JSON, CSV, or Apache Parquet) of the object. Amazon S3 uses this format to parse object data into records, and returns only records that match the specified SQL expression. You must also specify the data serialization format for the response.

For more information about Amazon S3 Select, see Selecting Content from Objects in the Amazon Simple Storage Service Developer Guide.

For more information about using SQL with Amazon S3 Select, see SQL Reference for Amazon S3 Select and S3 Glacier Select in the Amazon Simple Storage Service Developer Guide.

Permissions

You must have s3:GetObject permission for this operation. Amazon S3 Select does not support anonymous access. For more information about permissions, see Specifying Permissions in a Policy in the Amazon Simple Storage Service Developer Guide.

Object Data Formats

You can use Amazon S3 Select to query objects that have the following format properties:

  • CSV, JSON, and Parquet - Objects must be in CSV, JSON, or Parquet format.

  • UTF-8 - UTF-8 is the only encoding type Amazon S3 Select supports.

  • GZIP or BZIP2 - CSV and JSON files can be compressed using GZIP or BZIP2. GZIP and BZIP2 are the only compression formats that Amazon S3 Select supports for CSV and JSON files. Amazon S3 Select supports columnar compression for Parquet using GZIP or Snappy. Amazon S3 Select does not support whole-object compression for Parquet objects.

  • Server-side encryption - Amazon S3 Select supports querying objects that are protected with server-side encryption.

    For objects that are encrypted with customer-provided encryption keys (SSE-C), you must use HTTPS, and you must use the headers that are documented in the GetObject. For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys) in the Amazon Simple Storage Service Developer Guide.

    For objects that are encrypted with Amazon S3 managed encryption keys (SSE-S3) and customer master keys (CMKs) stored in AWS Key Management Service (SSE-KMS), server-side encryption is handled transparently, so you don't need to specify anything. For more information about server-side encryption, including SSE-S3 and SSE-KMS, see Protecting Data Using Server-Side Encryption in the Amazon Simple Storage Service Developer Guide.

Working with the Response Body

Given the response size is unknown, Amazon S3 Select streams the response as a series of messages and includes a Transfer-Encoding header with chunked as its value in the response. For more information, see Appendix: SelectObjectContent Response .

GetObject Support

The SelectObjectContent operation does not support the following GetObject functionality. For more information, see GetObject.

  • Range: Although you can specify a scan range for an Amazon S3 Select request (see SelectObjectContentRequest - ScanRange in the request parameters), you cannot specify the range of bytes of an object to return.

  • GLACIER, DEEP_ARCHIVE and REDUCED_REDUNDANCY storage classes: You cannot specify the GLACIER, DEEP_ARCHIVE, or REDUCED_REDUNDANCY storage classes. For more information, about storage classes see Storage Classes in the Amazon Simple Storage Service Developer Guide.

Special Errors

For a list of special errors for this operation, see List of SELECT Object Content Error Codes

Related Resources

", - "UploadPart": "

Uploads a part in a multipart upload.

In this operation, you provide part data in your request. However, you have an option to specify your existing Amazon S3 object as a data source for the part you are uploading. To upload a part from an existing object, you use the UploadPartCopy operation.

You must initiate a multipart upload (see CreateMultipartUpload) before you can upload any part. In response to your initiate request, Amazon S3 returns an upload ID, a unique identifier, that you must include in your upload part request.

Part numbers can be any number from 1 to 10,000, inclusive. A part number uniquely identifies a part and also defines its position within the object being created. If you upload a new part using the same part number that was used with a previous part, the previously uploaded part is overwritten. Each part must be at least 5 MB in size, except the last part. There is no size limit on the last part of your multipart upload.

To ensure that data is not corrupted when traversing the network, specify the Content-MD5 header in the upload part request. Amazon S3 checks the part data against the provided MD5 value. If they do not match, Amazon S3 returns an error.

Note: After you initiate multipart upload and upload one or more parts, you must either complete or abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts storage.

For more information on multipart uploads, go to Multipart Upload Overview in the Amazon Simple Storage Service Developer Guide .

For information on the permissions required to use the multipart upload API, go to Multipart Upload API and Permissions in the Amazon Simple Storage Service Developer Guide.

You can optionally request server-side encryption where Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it for you when you access it. You have the option of providing your own encryption key, or you can use the AWS managed encryption keys. If you choose to provide your own encryption key, the request headers you provide in the request must match the headers you used in the request to initiate the upload by using CreateMultipartUpload. For more information, go to Using Server-Side Encryption in the Amazon Simple Storage Service Developer Guide.

Server-side encryption is supported by the S3 Multipart Upload actions. Unless you are using a customer-provided encryption key, you don't need to specify the encryption parameters in each UploadPart request. Instead, you only need to specify the server-side encryption parameters in the initial Initiate Multipart request. For more information, see CreateMultipartUpload.

If you requested server-side encryption using a customer-provided encryption key in your initiate multipart upload request, you must provide identical encryption information in each part upload using the following headers.

  • x-amz-server-side-encryption-customer-algorithm

  • x-amz-server-side-encryption-customer-key

  • x-amz-server-side-encryption-customer-key-MD5

Special Errors

    • Code: NoSuchUpload

    • Cause: The specified multipart upload does not exist. The upload ID might be invalid, or the multipart upload might have been aborted or completed.

    • HTTP Status Code: 404 Not Found

    • SOAP Fault Code Prefix: Client

Related Resources

", - "UploadPartCopy": "

Uploads a part by copying data from an existing object as data source. You specify the data source by adding the request header x-amz-copy-source in your request and a byte range by adding the request header x-amz-copy-source-range in your request.

The minimum allowable part size for a multipart upload is 5 MB. For more information about multipart upload limits, go to Quick Facts in the Amazon Simple Storage Service Developer Guide.

Instead of using an existing object as part data, you might use the UploadPart operation and provide data in your request.

You must initiate a multipart upload before you can upload any part. In response to your initiate request. Amazon S3 returns a unique identifier, the upload ID, that you must include in your upload part request.

For more information about using the UploadPartCopy operation, see the following:

  • For conceptual information about multipart uploads, see Uploading Objects Using Multipart Upload in the Amazon Simple Storage Service Developer Guide.

  • For information about permissions required to use the multipart upload API, see Multipart Upload API and Permissions in the Amazon Simple Storage Service Developer Guide.

  • For information about copying objects using a single atomic operation vs. the multipart upload, see Operations on Objects in the Amazon Simple Storage Service Developer Guide.

  • For information about using server-side encryption with customer-provided encryption keys with the UploadPartCopy operation, see CopyObject and UploadPart.

Note the following additional considerations about the request headers x-amz-copy-source-if-match, x-amz-copy-source-if-none-match, x-amz-copy-source-if-unmodified-since, and x-amz-copy-source-if-modified-since:

  • Consideration 1 - If both of the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since headers are present in the request as follows:

    x-amz-copy-source-if-match condition evaluates to true, and;

    x-amz-copy-source-if-unmodified-since condition evaluates to false;

    Amazon S3 returns 200 OK and copies the data.

  • Consideration 2 - If both of the x-amz-copy-source-if-none-match and x-amz-copy-source-if-modified-since headers are present in the request as follows:

    x-amz-copy-source-if-none-match condition evaluates to false, and;

    x-amz-copy-source-if-modified-since condition evaluates to true;

    Amazon S3 returns 412 Precondition Failed response code.

Versioning

If your bucket has versioning enabled, you could have multiple versions of the same object. By default, x-amz-copy-source identifies the current version of the object to copy. If the current version is a delete marker and you don't specify a versionId in the x-amz-copy-source, Amazon S3 returns a 404 error, because the object does not exist. If you specify versionId in the x-amz-copy-source and the versionId is a delete marker, Amazon S3 returns an HTTP 400 error, because you are not allowed to specify a delete marker as a version for the x-amz-copy-source.

You can optionally specify a specific version of the source object to copy by adding the versionId subresource as shown in the following example:

x-amz-copy-source: /bucket/object?versionId=version id

Special Errors

    • Code: NoSuchUpload

    • Cause: The specified multipart upload does not exist. The upload ID might be invalid, or the multipart upload might have been aborted or completed.

    • HTTP Status Code: 404 Not Found

    • Code: InvalidRequest

    • Cause: The specified copy source is not supported as a byte-range copy source.

    • HTTP Status Code: 400 Bad Request

Related Resources

" + "RestoreObject": "

Restores an archived copy of an object back into Amazon S3

This action is not supported by Amazon S3 on Outposts.

This action performs the following types of requests:

  • select - Perform a select query on an archived object

  • restore an archive - Restore an archived object

To use this operation, you must have permissions to perform the s3:RestoreObject action. The bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources in the Amazon Simple Storage Service Developer Guide.

Querying Archives with Select Requests

You use a select type of request to perform SQL queries on archived objects. The archived objects that are being queried by the select request must be formatted as uncompressed comma-separated values (CSV) files. You can run queries and custom analytics on your archived data without having to restore your data to a hotter Amazon S3 tier. For an overview about select requests, see Querying Archived Objects in the Amazon Simple Storage Service Developer Guide.

When making a select request, do the following:

  • Define an output location for the select query's output. This must be an Amazon S3 bucket in the same AWS Region as the bucket that contains the archive object that is being queried. The AWS account that initiates the job must have permissions to write to the S3 bucket. You can specify the storage class and encryption for the output objects stored in the bucket. For more information about output, see Querying Archived Objects in the Amazon Simple Storage Service Developer Guide.

    For more information about the S3 structure in the request body, see the following:

  • Define the SQL expression for the SELECT type of restoration for your query in the request body's SelectParameters structure. You can use expressions like the following examples.

    • The following expression returns all records from the specified object.

      SELECT * FROM Object

    • Assuming that you are not using any headers for data stored in the object, you can specify columns with positional headers.

      SELECT s._1, s._2 FROM Object s WHERE s._3 > 100

    • If you have headers and you set the fileHeaderInfo in the CSV structure in the request body to USE, you can specify headers in the query. (If you set the fileHeaderInfo field to IGNORE, the first row is skipped for the query.) You cannot mix ordinal positions with header column names.

      SELECT s.Id, s.FirstName, s.SSN FROM S3Object s

For more information about using SQL with S3 Glacier Select restore, see SQL Reference for Amazon S3 Select and S3 Glacier Select in the Amazon Simple Storage Service Developer Guide.

When making a select request, you can also do the following:

  • To expedite your queries, specify the Expedited tier. For more information about tiers, see \"Restoring Archives,\" later in this topic.

  • Specify details about the data serialization format of both the input object that is being queried and the serialization of the CSV-encoded query results.

The following are additional important facts about the select feature:

  • The output results are new Amazon S3 objects. Unlike archive retrievals, they are stored until explicitly deleted-manually or through a lifecycle policy.

  • You can issue more than one select request on the same Amazon S3 object. Amazon S3 doesn't deduplicate requests, so avoid issuing duplicate requests.

  • Amazon S3 accepts a select request even if the object has already been restored. A select request doesn’t return error response 409.

Restoring Archives

Objects in the GLACIER and DEEP_ARCHIVE storage classes are archived. To access an archived object, you must first initiate a restore request. This restores a temporary copy of the archived object. In a restore request, you specify the number of days that you want the restored copy to exist. After the specified period, Amazon S3 deletes the temporary copy but the object remains archived in the GLACIER or DEEP_ARCHIVE storage class that object was restored from.

To restore a specific object version, you can provide a version ID. If you don't provide a version ID, Amazon S3 restores the current version.

The time it takes restore jobs to finish depends on which storage class the object is being restored from and which data access tier you specify.

When restoring an archived object (or using a select request), you can specify one of the following data access tier options in the Tier element of the request body:

  • Expedited - Expedited retrievals allow you to quickly access your data stored in the GLACIER storage class when occasional urgent requests for a subset of archives are required. For all but the largest archived objects (250 MB+), data accessed using Expedited retrievals are typically made available within 1–5 minutes. Provisioned capacity ensures that retrieval capacity for Expedited retrievals is available when you need it. Expedited retrievals and provisioned capacity are not available for the DEEP_ARCHIVE storage class.

  • Standard - S3 Standard retrievals allow you to access any of your archived objects within several hours. This is the default option for the GLACIER and DEEP_ARCHIVE retrieval requests that do not specify the retrieval option. S3 Standard retrievals typically complete within 3-5 hours from the GLACIER storage class and typically complete within 12 hours from the DEEP_ARCHIVE storage class.

  • Bulk - Bulk retrievals are Amazon S3 Glacier’s lowest-cost retrieval option, enabling you to retrieve large amounts, even petabytes, of data inexpensively in a day. Bulk retrievals typically complete within 5-12 hours from the GLACIER storage class and typically complete within 48 hours from the DEEP_ARCHIVE storage class.

For more information about archive retrieval options and provisioned capacity for Expedited data access, see Restoring Archived Objects in the Amazon Simple Storage Service Developer Guide.

You can use Amazon S3 restore speed upgrade to change the restore speed to a faster speed while it is in progress. You upgrade the speed of an in-progress restoration by issuing another restore request to the same object, setting a new Tier request element. When issuing a request to upgrade the restore tier, you must choose a tier that is faster than the tier that the in-progress restore is using. You must not change any other parameters, such as the Days request element. For more information, see Upgrading the Speed of an In-Progress Restore in the Amazon Simple Storage Service Developer Guide.

To get the status of object restoration, you can send a HEAD request. Operations return the x-amz-restore header, which provides information about the restoration status, in the response. You can use Amazon S3 event notifications to notify you when a restore is initiated or completed. For more information, see Configuring Amazon S3 Event Notifications in the Amazon Simple Storage Service Developer Guide.

After restoring an archived object, you can update the restoration period by reissuing the request with a new period. Amazon S3 updates the restoration period relative to the current time and charges only for the request-there are no data transfer charges. You cannot update the restoration period when Amazon S3 is actively processing your current restore request for the object.

If your bucket has a lifecycle configuration with a rule that includes an expiration action, the object expiration overrides the life span that you specify in a restore request. For example, if you restore an object copy for 10 days, but the object is scheduled to expire in 3 days, Amazon S3 deletes the object in 3 days. For more information about lifecycle configuration, see PutBucketLifecycleConfiguration and Object Lifecycle Management in Amazon Simple Storage Service Developer Guide.

Responses

A successful operation returns either the 200 OK or 202 Accepted status code.

  • If the object copy is not previously restored, then Amazon S3 returns 202 Accepted in the response.

  • If the object copy is previously restored, Amazon S3 returns 200 OK in the response.

Special Errors

    • Code: RestoreAlreadyInProgress

    • Cause: Object restore is already in progress. (This error does not apply to SELECT type requests.)

    • HTTP Status Code: 409 Conflict

    • SOAP Fault Code Prefix: Client

    • Code: GlacierExpeditedRetrievalNotAvailable

    • Cause: S3 Glacier expedited retrievals are currently not available. Try again later. (Returned if there is insufficient capacity to process the Expedited request. This error applies only to Expedited retrievals and not to S3 Standard or Bulk retrievals.)

    • HTTP Status Code: 503

    • SOAP Fault Code Prefix: N/A

Related Resources

", + "SelectObjectContent": "

This operation filters the contents of an Amazon S3 object based on a simple structured query language (SQL) statement. In the request, along with the SQL expression, you must also specify a data serialization format (JSON, CSV, or Apache Parquet) of the object. Amazon S3 uses this format to parse object data into records, and returns only records that match the specified SQL expression. You must also specify the data serialization format for the response.

This action is not supported by Amazon S3 on Outposts.

For more information about Amazon S3 Select, see Selecting Content from Objects in the Amazon Simple Storage Service Developer Guide.

For more information about using SQL with Amazon S3 Select, see SQL Reference for Amazon S3 Select and S3 Glacier Select in the Amazon Simple Storage Service Developer Guide.

Permissions

You must have s3:GetObject permission for this operation. Amazon S3 Select does not support anonymous access. For more information about permissions, see Specifying Permissions in a Policy in the Amazon Simple Storage Service Developer Guide.

Object Data Formats

You can use Amazon S3 Select to query objects that have the following format properties:

  • CSV, JSON, and Parquet - Objects must be in CSV, JSON, or Parquet format.

  • UTF-8 - UTF-8 is the only encoding type Amazon S3 Select supports.

  • GZIP or BZIP2 - CSV and JSON files can be compressed using GZIP or BZIP2. GZIP and BZIP2 are the only compression formats that Amazon S3 Select supports for CSV and JSON files. Amazon S3 Select supports columnar compression for Parquet using GZIP or Snappy. Amazon S3 Select does not support whole-object compression for Parquet objects.

  • Server-side encryption - Amazon S3 Select supports querying objects that are protected with server-side encryption.

    For objects that are encrypted with customer-provided encryption keys (SSE-C), you must use HTTPS, and you must use the headers that are documented in the GetObject. For more information about SSE-C, see Server-Side Encryption (Using Customer-Provided Encryption Keys) in the Amazon Simple Storage Service Developer Guide.

    For objects that are encrypted with Amazon S3 managed encryption keys (SSE-S3) and customer master keys (CMKs) stored in AWS Key Management Service (SSE-KMS), server-side encryption is handled transparently, so you don't need to specify anything. For more information about server-side encryption, including SSE-S3 and SSE-KMS, see Protecting Data Using Server-Side Encryption in the Amazon Simple Storage Service Developer Guide.

Working with the Response Body

Given the response size is unknown, Amazon S3 Select streams the response as a series of messages and includes a Transfer-Encoding header with chunked as its value in the response. For more information, see Appendix: SelectObjectContent Response .

GetObject Support

The SelectObjectContent operation does not support the following GetObject functionality. For more information, see GetObject.

  • Range: Although you can specify a scan range for an Amazon S3 Select request (see SelectObjectContentRequest - ScanRange in the request parameters), you cannot specify the range of bytes of an object to return.

  • GLACIER, DEEP_ARCHIVE and REDUCED_REDUNDANCY storage classes: You cannot specify the GLACIER, DEEP_ARCHIVE, or REDUCED_REDUNDANCY storage classes. For more information, about storage classes see Storage Classes in the Amazon Simple Storage Service Developer Guide.

Special Errors

For a list of special errors for this operation, see List of SELECT Object Content Error Codes

Related Resources

", + "UploadPart": "

Uploads a part in a multipart upload.

In this operation, you provide part data in your request. However, you have an option to specify your existing Amazon S3 object as a data source for the part you are uploading. To upload a part from an existing object, you use the UploadPartCopy operation.

You must initiate a multipart upload (see CreateMultipartUpload) before you can upload any part. In response to your initiate request, Amazon S3 returns an upload ID, a unique identifier, that you must include in your upload part request.

Part numbers can be any number from 1 to 10,000, inclusive. A part number uniquely identifies a part and also defines its position within the object being created. If you upload a new part using the same part number that was used with a previous part, the previously uploaded part is overwritten. Each part must be at least 5 MB in size, except the last part. There is no size limit on the last part of your multipart upload.

To ensure that data is not corrupted when traversing the network, specify the Content-MD5 header in the upload part request. Amazon S3 checks the part data against the provided MD5 value. If they do not match, Amazon S3 returns an error.

Note: After you initiate multipart upload and upload one or more parts, you must either complete or abort multipart upload in order to stop getting charged for storage of the uploaded parts. Only after you either complete or abort multipart upload, Amazon S3 frees up the parts storage and stops charging you for the parts storage.

For more information on multipart uploads, go to Multipart Upload Overview in the Amazon Simple Storage Service Developer Guide .

For information on the permissions required to use the multipart upload API, go to Multipart Upload API and Permissions in the Amazon Simple Storage Service Developer Guide.

You can optionally request server-side encryption where Amazon S3 encrypts your data as it writes it to disks in its data centers and decrypts it for you when you access it. You have the option of providing your own encryption key, or you can use the AWS managed encryption keys. If you choose to provide your own encryption key, the request headers you provide in the request must match the headers you used in the request to initiate the upload by using CreateMultipartUpload. For more information, go to Using Server-Side Encryption in the Amazon Simple Storage Service Developer Guide.

Server-side encryption is supported by the S3 Multipart Upload actions. Unless you are using a customer-provided encryption key, you don't need to specify the encryption parameters in each UploadPart request. Instead, you only need to specify the server-side encryption parameters in the initial Initiate Multipart request. For more information, see CreateMultipartUpload.

If you requested server-side encryption using a customer-provided encryption key in your initiate multipart upload request, you must provide identical encryption information in each part upload using the following headers.

  • x-amz-server-side-encryption-customer-algorithm

  • x-amz-server-side-encryption-customer-key

  • x-amz-server-side-encryption-customer-key-MD5

Special Errors

    • Code: NoSuchUpload

    • Cause: The specified multipart upload does not exist. The upload ID might be invalid, or the multipart upload might have been aborted or completed.

    • HTTP Status Code: 404 Not Found

    • SOAP Fault Code Prefix: Client

Related Resources

", + "UploadPartCopy": "

Uploads a part by copying data from an existing object as data source. You specify the data source by adding the request header x-amz-copy-source in your request and a byte range by adding the request header x-amz-copy-source-range in your request.

The minimum allowable part size for a multipart upload is 5 MB. For more information about multipart upload limits, go to Quick Facts in the Amazon Simple Storage Service Developer Guide.

Instead of using an existing object as part data, you might use the UploadPart operation and provide data in your request.

You must initiate a multipart upload before you can upload any part. In response to your initiate request. Amazon S3 returns a unique identifier, the upload ID, that you must include in your upload part request.

For more information about using the UploadPartCopy operation, see the following:

  • For conceptual information about multipart uploads, see Uploading Objects Using Multipart Upload in the Amazon Simple Storage Service Developer Guide.

  • For information about permissions required to use the multipart upload API, see Multipart Upload API and Permissions in the Amazon Simple Storage Service Developer Guide.

  • For information about copying objects using a single atomic operation vs. the multipart upload, see Operations on Objects in the Amazon Simple Storage Service Developer Guide.

  • For information about using server-side encryption with customer-provided encryption keys with the UploadPartCopy operation, see CopyObject and UploadPart.

Note the following additional considerations about the request headers x-amz-copy-source-if-match, x-amz-copy-source-if-none-match, x-amz-copy-source-if-unmodified-since, and x-amz-copy-source-if-modified-since:

  • Consideration 1 - If both of the x-amz-copy-source-if-match and x-amz-copy-source-if-unmodified-since headers are present in the request as follows:

    x-amz-copy-source-if-match condition evaluates to true, and;

    x-amz-copy-source-if-unmodified-since condition evaluates to false;

    Amazon S3 returns 200 OK and copies the data.

  • Consideration 2 - If both of the x-amz-copy-source-if-none-match and x-amz-copy-source-if-modified-since headers are present in the request as follows:

    x-amz-copy-source-if-none-match condition evaluates to false, and;

    x-amz-copy-source-if-modified-since condition evaluates to true;

    Amazon S3 returns 412 Precondition Failed response code.

Versioning

If your bucket has versioning enabled, you could have multiple versions of the same object. By default, x-amz-copy-source identifies the current version of the object to copy. If the current version is a delete marker and you don't specify a versionId in the x-amz-copy-source, Amazon S3 returns a 404 error, because the object does not exist. If you specify versionId in the x-amz-copy-source and the versionId is a delete marker, Amazon S3 returns an HTTP 400 error, because you are not allowed to specify a delete marker as a version for the x-amz-copy-source.

You can optionally specify a specific version of the source object to copy by adding the versionId subresource as shown in the following example:

x-amz-copy-source: /bucket/object?versionId=version id

Special Errors

    • Code: NoSuchUpload

    • Cause: The specified multipart upload does not exist. The upload ID might be invalid, or the multipart upload might have been aborted or completed.

    • HTTP Status Code: 404 Not Found

    • Code: InvalidRequest

    • Cause: The specified copy source is not supported as a byte-range copy source.

    • HTTP Status Code: 400 Bad Request

Related Resources

" }, "shapes": { "AbortDate": { @@ -401,21 +401,21 @@ "BucketLogsPermission": { "base": null, "refs": { - "TargetGrant$Permission": "

Logging permissions assigned to the Grantee for the bucket.

" + "TargetGrant$Permission": "

Logging permissions assigned to the grantee for the bucket.

" } }, "BucketName": { "base": null, "refs": { - "AbortMultipartUploadRequest$Bucket": "

The bucket name to which the upload was taking place.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", + "AbortMultipartUploadRequest$Bucket": "

The bucket name to which the upload was taking place.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", "AnalyticsS3BucketDestination$Bucket": "

The Amazon Resource Name (ARN) of the bucket to which data is exported.

", "Bucket$Name": "

The name of the bucket.

", - "CompleteMultipartUploadOutput$Bucket": "

The name of the bucket that contains the newly created object.

", + "CompleteMultipartUploadOutput$Bucket": "

The name of the bucket that contains the newly created object.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", "CompleteMultipartUploadRequest$Bucket": "

Name of the bucket to which the multipart upload was initiated.

", - "CopyObjectRequest$Bucket": "

The name of the destination bucket.

", + "CopyObjectRequest$Bucket": "

The name of the destination bucket.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", "CreateBucketRequest$Bucket": "

The name of the bucket to create.

", - "CreateMultipartUploadOutput$Bucket": "

Name of the bucket to which the multipart upload was initiated.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", - "CreateMultipartUploadRequest$Bucket": "

The name of the bucket to which to initiate the upload

", + "CreateMultipartUploadOutput$Bucket": "

The name of the bucket to which the multipart upload was initiated.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "CreateMultipartUploadRequest$Bucket": "

The name of the bucket to which to initiate the upload

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", "DeleteBucketAnalyticsConfigurationRequest$Bucket": "

The name of the bucket from which an analytics configuration is deleted.

", "DeleteBucketCorsRequest$Bucket": "

Specifies the bucket whose cors configuration is being deleted.

", "DeleteBucketEncryptionRequest$Bucket": "

The name of the bucket containing the server-side encryption configuration to delete.

", @@ -427,12 +427,12 @@ "DeleteBucketRequest$Bucket": "

Specifies the bucket being deleted.

", "DeleteBucketTaggingRequest$Bucket": "

The bucket that has the tag set to be removed.

", "DeleteBucketWebsiteRequest$Bucket": "

The bucket name for which you want to remove the website configuration.

", - "DeleteObjectRequest$Bucket": "

The bucket name of the bucket containing the object.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", - "DeleteObjectTaggingRequest$Bucket": "

The bucket name containing the objects from which to remove the tags.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", - "DeleteObjectsRequest$Bucket": "

The bucket name containing the objects to delete.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", + "DeleteObjectRequest$Bucket": "

The bucket name of the bucket containing the object.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "DeleteObjectTaggingRequest$Bucket": "

The bucket name containing the objects from which to remove the tags.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "DeleteObjectsRequest$Bucket": "

The bucket name containing the objects to delete.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", "DeletePublicAccessBlockRequest$Bucket": "

The Amazon S3 bucket whose PublicAccessBlock configuration you want to delete.

", "Destination$Bucket": "

The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store the results.

", - "GetBucketAccelerateConfigurationRequest$Bucket": "

Name of the bucket for which the accelerate configuration is retrieved.

", + "GetBucketAccelerateConfigurationRequest$Bucket": "

The name of the bucket for which the accelerate configuration is retrieved.

", "GetBucketAclRequest$Bucket": "

Specifies the S3 bucket whose ACL is being requested.

", "GetBucketAnalyticsConfigurationRequest$Bucket": "

The name of the bucket from which an analytics configuration is retrieved.

", "GetBucketCorsRequest$Bucket": "

The bucket name for which to get the cors configuration.

", @@ -443,7 +443,7 @@ "GetBucketLocationRequest$Bucket": "

The name of the bucket for which to get the location.

", "GetBucketLoggingRequest$Bucket": "

The bucket name for which to get the logging information.

", "GetBucketMetricsConfigurationRequest$Bucket": "

The name of the bucket containing the metrics configuration to retrieve.

", - "GetBucketNotificationConfigurationRequest$Bucket": "

Name of the bucket for which to get the notification configuration.

", + "GetBucketNotificationConfigurationRequest$Bucket": "

The name of the bucket for which to get the notification configuration.

", "GetBucketPolicyRequest$Bucket": "

The bucket name for which to get the bucket policy.

", "GetBucketPolicyStatusRequest$Bucket": "

The name of the Amazon S3 bucket whose policy status you want to retrieve.

", "GetBucketReplicationRequest$Bucket": "

The bucket name for which to get the replication information.

", @@ -453,29 +453,29 @@ "GetBucketWebsiteRequest$Bucket": "

The bucket name for which to get the website configuration.

", "GetObjectAclRequest$Bucket": "

The bucket name that contains the object for which to get the ACL information.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", "GetObjectLegalHoldRequest$Bucket": "

The bucket name containing the object whose Legal Hold status you want to retrieve.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", - "GetObjectLockConfigurationRequest$Bucket": "

The bucket whose Object Lock configuration you want to retrieve.

", - "GetObjectRequest$Bucket": "

The bucket name containing the object.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", + "GetObjectLockConfigurationRequest$Bucket": "

The bucket whose Object Lock configuration you want to retrieve.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", + "GetObjectRequest$Bucket": "

The bucket name containing the object.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", "GetObjectRetentionRequest$Bucket": "

The bucket name containing the object whose retention settings you want to retrieve.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", - "GetObjectTaggingRequest$Bucket": "

The bucket name containing the object for which to get the tagging information.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", + "GetObjectTaggingRequest$Bucket": "

The bucket name containing the object for which to get the tagging information.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", "GetObjectTorrentRequest$Bucket": "

The name of the bucket containing the object for which to get the torrent files.

", "GetPublicAccessBlockRequest$Bucket": "

The name of the Amazon S3 bucket whose PublicAccessBlock configuration you want to retrieve.

", - "HeadBucketRequest$Bucket": "

The bucket name.

", - "HeadObjectRequest$Bucket": "

The name of the bucket containing the object.

", + "HeadBucketRequest$Bucket": "

The bucket name.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "HeadObjectRequest$Bucket": "

The name of the bucket containing the object.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", "InventoryS3BucketDestination$Bucket": "

The Amazon Resource Name (ARN) of the bucket where inventory results will be published.

", "ListBucketAnalyticsConfigurationsRequest$Bucket": "

The name of the bucket from which analytics configurations are retrieved.

", "ListBucketInventoryConfigurationsRequest$Bucket": "

The name of the bucket containing the inventory configurations to retrieve.

", "ListBucketMetricsConfigurationsRequest$Bucket": "

The name of the bucket containing the metrics configurations to retrieve.

", - "ListMultipartUploadsOutput$Bucket": "

Name of the bucket to which the multipart upload was initiated.

", - "ListMultipartUploadsRequest$Bucket": "

Name of the bucket to which the multipart upload was initiated.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", - "ListObjectVersionsOutput$Name": "

Bucket name.

", - "ListObjectVersionsRequest$Bucket": "

The bucket name that contains the objects.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", - "ListObjectsOutput$Name": "

Bucket name.

", - "ListObjectsRequest$Bucket": "

The name of the bucket containing the objects.

", - "ListObjectsV2Output$Name": "

Bucket name.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", - "ListObjectsV2Request$Bucket": "

Bucket name to list.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", - "ListPartsOutput$Bucket": "

Name of the bucket to which the multipart upload was initiated.

", - "ListPartsRequest$Bucket": "

Name of the bucket to which the parts are being uploaded.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", - "PutBucketAccelerateConfigurationRequest$Bucket": "

Name of the bucket for which the accelerate configuration is set.

", + "ListMultipartUploadsOutput$Bucket": "

The name of the bucket to which the multipart upload was initiated.

", + "ListMultipartUploadsRequest$Bucket": "

The name of the bucket to which the multipart upload was initiated.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "ListObjectVersionsOutput$Name": "

The bucket name.

", + "ListObjectVersionsRequest$Bucket": "

The bucket name that contains the objects.

", + "ListObjectsOutput$Name": "

The bucket name.

", + "ListObjectsRequest$Bucket": "

The name of the bucket containing the objects.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "ListObjectsV2Output$Name": "

The bucket name.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "ListObjectsV2Request$Bucket": "

Bucket name to list.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "ListPartsOutput$Bucket": "

The name of the bucket to which the multipart upload was initiated.

", + "ListPartsRequest$Bucket": "

The name of the bucket to which the parts are being uploaded.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "PutBucketAccelerateConfigurationRequest$Bucket": "

The name of the bucket for which the accelerate configuration is set.

", "PutBucketAclRequest$Bucket": "

The bucket to which to apply the ACL.

", "PutBucketAnalyticsConfigurationRequest$Bucket": "

The name of the bucket to which an analytics configuration is stored.

", "PutBucketCorsRequest$Bucket": "

Specifies the bucket impacted by the corsconfiguration.

", @@ -496,15 +496,15 @@ "PutObjectAclRequest$Bucket": "

The bucket name that contains the object to which you want to attach the ACL.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", "PutObjectLegalHoldRequest$Bucket": "

The bucket name containing the object that you want to place a Legal Hold on.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", "PutObjectLockConfigurationRequest$Bucket": "

The bucket whose Object Lock configuration you want to create or replace.

", - "PutObjectRequest$Bucket": "

Bucket name to which the PUT operation was initiated.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", + "PutObjectRequest$Bucket": "

The bucket name to which the PUT operation was initiated.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", "PutObjectRetentionRequest$Bucket": "

The bucket name that contains the object you want to apply this Object Retention configuration to.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", - "PutObjectTaggingRequest$Bucket": "

The bucket name containing the object.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", + "PutObjectTaggingRequest$Bucket": "

The bucket name containing the object.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", "PutPublicAccessBlockRequest$Bucket": "

The name of the Amazon S3 bucket whose PublicAccessBlock configuration you want to set.

", - "RestoreObjectRequest$Bucket": "

The bucket name or containing the object to restore.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

", + "RestoreObjectRequest$Bucket": "

The bucket name or containing the object to restore.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", "S3Location$BucketName": "

The name of the bucket where the restore results will be placed.

", "SelectObjectContentRequest$Bucket": "

The S3 bucket.

", - "UploadPartCopyRequest$Bucket": "

The bucket name.

", - "UploadPartRequest$Bucket": "

Name of the bucket to which the multipart upload was initiated.

" + "UploadPartCopyRequest$Bucket": "

The bucket name.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", + "UploadPartRequest$Bucket": "

The name of the bucket to which the multipart upload was initiated.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

" } }, "BucketVersioningStatus": { @@ -792,8 +792,8 @@ "CopySource": { "base": null, "refs": { - "CopyObjectRequest$CopySource": "

Specifies the source object for the copy operation. You specify the value in one of two formats, depending on whether you want to access the source object through an access point:

  • For objects not accessed through an access point, specify the name of the source bucket and the key of the source object, separated by a slash (/). For example, to copy the object reports/january.pdf from the bucket awsexamplebucket, use awsexamplebucket/reports/january.pdf. The value must be URL encoded.

  • For objects accessed through access points, specify the Amazon Resource Name (ARN) of the object as accessed through the access point, in the format arn:aws:s3:<Region>:<account-id>:accesspoint/<access-point-name>/object/<key>. For example, to copy the object reports/january.pdf through access point my-access-point owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf. The value must be URL encoded.

    Amazon S3 supports copy operations using access points only when the source and destination buckets are in the same AWS Region.

To copy a specific version of an object, append ?versionId=<version-id> to the value (for example, awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893). If you don't specify a version ID, Amazon S3 copies the latest version of the source object.

", - "UploadPartCopyRequest$CopySource": "

Specifies the source object for the copy operation. You specify the value in one of two formats, depending on whether you want to access the source object through an access point:

  • For objects not accessed through an access point, specify the name of the source bucket and key of the source object, separated by a slash (/). For example, to copy the object reports/january.pdf from the bucket awsexamplebucket, use awsexamplebucket/reports/january.pdf. The value must be URL encoded.

  • For objects accessed through access points, specify the Amazon Resource Name (ARN) of the object as accessed through the access point, in the format arn:aws:s3:<Region>:<account-id>:accesspoint/<access-point-name>/object/<key>. For example, to copy the object reports/january.pdf through the access point my-access-point owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf. The value must be URL encoded.

    Amazon S3 supports copy operations using access points only when the source and destination buckets are in the same AWS Region.

To copy a specific version of an object, append ?versionId=<version-id> to the value (for example, awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893). If you don't specify a version ID, Amazon S3 copies the latest version of the source object.

" + "CopyObjectRequest$CopySource": "

Specifies the source object for the copy operation. You specify the value in one of two formats, depending on whether you want to access the source object through an access point:

  • For objects not accessed through an access point, specify the name of the source bucket and the key of the source object, separated by a slash (/). For example, to copy the object reports/january.pdf from the bucket awsexamplebucket, use awsexamplebucket/reports/january.pdf. The value must be URL encoded.

  • For objects accessed through access points, specify the Amazon Resource Name (ARN) of the object as accessed through the access point, in the format arn:aws:s3:<Region>:<account-id>:accesspoint/<access-point-name>/object/<key>. For example, to copy the object reports/january.pdf through access point my-access-point owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf. The value must be URL encoded.

    Amazon S3 supports copy operations using access points only when the source and destination buckets are in the same AWS Region.

    Alternatively, for objects accessed through Amazon S3 on Outposts, specify the ARN of the object as accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/object/<key>. For example, to copy the object reports/january.pdf through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf. The value must be URL encoded.

To copy a specific version of an object, append ?versionId=<version-id> to the value (for example, awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893). If you don't specify a version ID, Amazon S3 copies the latest version of the source object.

", + "UploadPartCopyRequest$CopySource": "

Specifies the source object for the copy operation. You specify the value in one of two formats, depending on whether you want to access the source object through an access point:

  • For objects not accessed through an access point, specify the name of the source bucket and key of the source object, separated by a slash (/). For example, to copy the object reports/january.pdf from the bucket awsexamplebucket, use awsexamplebucket/reports/january.pdf. The value must be URL encoded.

  • For objects accessed through access points, specify the Amazon Resource Name (ARN) of the object as accessed through the access point, in the format arn:aws:s3:<Region>:<account-id>:accesspoint/<access-point-name>/object/<key>. For example, to copy the object reports/january.pdf through access point my-access-point owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf. The value must be URL encoded.

    Amazon S3 supports copy operations using access points only when the source and destination buckets are in the same AWS Region.

    Alternatively, for objects accessed through Amazon S3 on Outposts, specify the ARN of the object as accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/object/<key>. For example, to copy the object reports/january.pdf through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf. The value must be URL encoded.

To copy a specific version of an object, append ?versionId=<version-id> to the value (for example, awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893). If you don't specify a version ID, Amazon S3 copies the latest version of the source object.

" } }, "CopySourceIfMatch": { @@ -2450,7 +2450,7 @@ "Object$Key": "

The name that you assign to an object. You use the object key to retrieve the object.

", "ObjectIdentifier$Key": "

Key name of the object to delete.

", "ObjectVersion$Key": "

The object key.

", - "PutObjectAclRequest$Key": "

Key for which the PUT operation was initiated.

", + "PutObjectAclRequest$Key": "

Key for which the PUT operation was initiated.

When using this API with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this operation using an access point through the AWS SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using Access Points in the Amazon Simple Storage Service Developer Guide.

When using this API with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When using this operation using S3 on Outposts through the AWS SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

", "PutObjectLegalHoldRequest$Key": "

The key name for the object that you want to place a Legal Hold on.

", "PutObjectRequest$Key": "

Object key for which the PUT operation was initiated.

", "PutObjectRetentionRequest$Key": "

The key name for the object that you want to apply this Object Retention configuration to.

", diff --git a/models/apis/s3/2006-03-01/examples-1.json b/models/apis/s3/2006-03-01/examples-1.json index 661b5de3542..57e77af1def 100644 --- a/models/apis/s3/2006-03-01/examples-1.json +++ b/models/apis/s3/2006-03-01/examples-1.json @@ -84,10 +84,13 @@ "CreateBucket": [ { "input": { - "Bucket": "examplebucket" + "Bucket": "examplebucket", + "CreateBucketConfiguration": { + "LocationConstraint": "eu-west-1" + } }, "output": { - "Location": "/examplebucket" + "Location": "http://examplebucket..s3.amazonaws.com/" }, "comments": { "input": { @@ -95,19 +98,16 @@ "output": { } }, - "description": "The following example creates a bucket.", - "id": "to-create-a-bucket--1472851826060", - "title": "To create a bucket " + "description": "The following example creates a bucket. The request specifies an AWS region where to create the bucket.", + "id": "to-create-a-bucket-in-a-specific-region-1483399072992", + "title": "To create a bucket in a specific region" }, { "input": { - "Bucket": "examplebucket", - "CreateBucketConfiguration": { - "LocationConstraint": "eu-west-1" - } + "Bucket": "examplebucket" }, "output": { - "Location": "http://examplebucket..s3.amazonaws.com/" + "Location": "/examplebucket" }, "comments": { "input": { @@ -115,9 +115,9 @@ "output": { } }, - "description": "The following example creates a bucket. The request specifies an AWS region where to create the bucket.", - "id": "to-create-a-bucket-in-a-specific-region-1483399072992", - "title": "To create a bucket in a specific region" + "description": "The following example creates a bucket.", + "id": "to-create-a-bucket--1472851826060", + "title": "To create a bucket " } ], "CreateMultipartUpload": [ @@ -257,10 +257,8 @@ "DeleteObject": [ { "input": { - "Bucket": "examplebucket", - "Key": "objectkey.jpg" - }, - "output": { + "Bucket": "ExampleBucket", + "Key": "HappyFace.jpg" }, "comments": { "input": { @@ -268,14 +266,16 @@ "output": { } }, - "description": "The following example deletes an object from an S3 bucket.", - "id": "to-delete-an-object-1472850136595", - "title": "To delete an object" + "description": "The following example deletes an object from a non-versioned bucket.", + "id": "to-delete-an-object-from-a-non-versioned-bucket-1481588533089", + "title": "To delete an object (from a non-versioned bucket)" }, { "input": { - "Bucket": "ExampleBucket", - "Key": "HappyFace.jpg" + "Bucket": "examplebucket", + "Key": "objectkey.jpg" + }, + "output": { }, "comments": { "input": { @@ -283,20 +283,19 @@ "output": { } }, - "description": "The following example deletes an object from a non-versioned bucket.", - "id": "to-delete-an-object-from-a-non-versioned-bucket-1481588533089", - "title": "To delete an object (from a non-versioned bucket)" + "description": "The following example deletes an object from an S3 bucket.", + "id": "to-delete-an-object-1472850136595", + "title": "To delete an object" } ], "DeleteObjectTagging": [ { "input": { "Bucket": "examplebucket", - "Key": "HappyFace.jpg", - "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" + "Key": "HappyFace.jpg" }, "output": { - "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" + "VersionId": "null" }, "comments": { "input": { @@ -304,17 +303,18 @@ "output": { } }, - "description": "The following example removes tag set associated with the specified object version. The request specifies both the object key and object version.", - "id": "to-remove-tag-set-from-an-object-version-1483145285913", - "title": "To remove tag set from an object version" + "description": "The following example removes tag set associated with the specified object. If the bucket is versioning enabled, the operation removes tag set from the latest object version.", + "id": "to-remove-tag-set-from-an-object-1483145342862", + "title": "To remove tag set from an object" }, { "input": { "Bucket": "examplebucket", - "Key": "HappyFace.jpg" + "Key": "HappyFace.jpg", + "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" }, "output": { - "VersionId": "null" + "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" }, "comments": { "input": { @@ -322,9 +322,9 @@ "output": { } }, - "description": "The following example removes tag set associated with the specified object. If the bucket is versioning enabled, the operation removes tag set from the latest object version.", - "id": "to-remove-tag-set-from-an-object-1483145342862", - "title": "To remove tag set from an object" + "description": "The following example removes tag set associated with the specified object version. The request specifies both the object key and object version.", + "id": "to-remove-tag-set-from-an-object-version-1483145285913", + "title": "To remove tag set from an object version" } ], "DeleteObjects": [ @@ -334,12 +334,10 @@ "Delete": { "Objects": [ { - "Key": "HappyFace.jpg", - "VersionId": "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b" + "Key": "objectkey1" }, { - "Key": "HappyFace.jpg", - "VersionId": "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd" + "Key": "objectkey2" } ], "Quiet": false @@ -348,12 +346,14 @@ "output": { "Deleted": [ { - "Key": "HappyFace.jpg", - "VersionId": "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd" + "DeleteMarker": "true", + "DeleteMarkerVersionId": "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F", + "Key": "objectkey1" }, { - "Key": "HappyFace.jpg", - "VersionId": "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b" + "DeleteMarker": "true", + "DeleteMarkerVersionId": "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt", + "Key": "objectkey2" } ] }, @@ -363,9 +363,9 @@ "output": { } }, - "description": "The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object versions and returns the key and versions of deleted objects in the response.", - "id": "to-delete-multiple-object-versions-from-a-versioned-bucket-1483147087737", - "title": "To delete multiple object versions from a versioned bucket" + "description": "The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.", + "id": "to-delete-multiple-objects-from-a-versioned-bucket-1483146248805", + "title": "To delete multiple objects from a versioned bucket" }, { "input": { @@ -373,10 +373,12 @@ "Delete": { "Objects": [ { - "Key": "objectkey1" + "Key": "HappyFace.jpg", + "VersionId": "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b" }, { - "Key": "objectkey2" + "Key": "HappyFace.jpg", + "VersionId": "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd" } ], "Quiet": false @@ -385,14 +387,12 @@ "output": { "Deleted": [ { - "DeleteMarker": "true", - "DeleteMarkerVersionId": "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F", - "Key": "objectkey1" + "Key": "HappyFace.jpg", + "VersionId": "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd" }, { - "DeleteMarker": "true", - "DeleteMarkerVersionId": "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt", - "Key": "objectkey2" + "Key": "HappyFace.jpg", + "VersionId": "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b" } ] }, @@ -402,9 +402,9 @@ "output": { } }, - "description": "The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.", - "id": "to-delete-multiple-objects-from-a-versioned-bucket-1483146248805", - "title": "To delete multiple objects from a versioned bucket" + "description": "The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object versions and returns the key and versions of deleted objects in the response.", + "id": "to-delete-multiple-object-versions-from-a-versioned-bucket-1483147087737", + "title": "To delete multiple object versions from a versioned bucket" } ], "GetBucketCors": [ @@ -728,18 +728,17 @@ { "input": { "Bucket": "examplebucket", - "Key": "SampleFile.txt", - "Range": "bytes=0-9" + "Key": "HappyFace.jpg" }, "output": { "AcceptRanges": "bytes", - "ContentLength": "10", - "ContentRange": "bytes 0-9/43", - "ContentType": "text/plain", - "ETag": "\"0d94420ffd0bc68cd3d152506b97a9cc\"", - "LastModified": "Thu, 09 Oct 2014 22:57:28 GMT", + "ContentLength": "3191", + "ContentType": "image/jpeg", + "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", + "LastModified": "Thu, 15 Dec 2016 01:19:41 GMT", "Metadata": { }, + "TagCount": 2, "VersionId": "null" }, "comments": { @@ -748,24 +747,25 @@ "output": { } }, - "description": "The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a specific byte range.", - "id": "to-retrieve-a-byte-range-of-an-object--1481832674603", - "title": "To retrieve a byte range of an object " + "description": "The following example retrieves an object for an S3 bucket.", + "id": "to-retrieve-an-object-1481827837012", + "title": "To retrieve an object" }, { "input": { "Bucket": "examplebucket", - "Key": "HappyFace.jpg" + "Key": "SampleFile.txt", + "Range": "bytes=0-9" }, "output": { "AcceptRanges": "bytes", - "ContentLength": "3191", - "ContentType": "image/jpeg", - "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "LastModified": "Thu, 15 Dec 2016 01:19:41 GMT", + "ContentLength": "10", + "ContentRange": "bytes 0-9/43", + "ContentType": "text/plain", + "ETag": "\"0d94420ffd0bc68cd3d152506b97a9cc\"", + "LastModified": "Thu, 09 Oct 2014 22:57:28 GMT", "Metadata": { }, - "TagCount": 2, "VersionId": "null" }, "comments": { @@ -774,9 +774,9 @@ "output": { } }, - "description": "The following example retrieves an object for an S3 bucket.", - "id": "to-retrieve-an-object-1481827837012", - "title": "To retrieve an object" + "description": "The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a specific byte range.", + "id": "to-retrieve-a-byte-range-of-an-object--1481832674603", + "title": "To retrieve a byte range of an object " } ], "GetObjectAcl": [ @@ -840,20 +840,17 @@ { "input": { "Bucket": "examplebucket", - "Key": "HappyFace.jpg" + "Key": "exampleobject", + "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" }, "output": { "TagSet": [ { - "Key": "Key4", - "Value": "Value4" - }, - { - "Key": "Key3", - "Value": "Value3" + "Key": "Key1", + "Value": "Value1" } ], - "VersionId": "null" + "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" }, "comments": { "input": { @@ -861,24 +858,27 @@ "output": { } }, - "description": "The following example retrieves tag set of an object.", - "id": "to-retrieve-tag-set-of-an-object-1481833847896", - "title": "To retrieve tag set of an object" + "description": "The following example retrieves tag set of an object. The request specifies object version.", + "id": "to-retrieve-tag-set-of-a-specific-object-version-1483400283663", + "title": "To retrieve tag set of a specific object version" }, { "input": { "Bucket": "examplebucket", - "Key": "exampleobject", - "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" + "Key": "HappyFace.jpg" }, "output": { "TagSet": [ { - "Key": "Key1", - "Value": "Value1" + "Key": "Key4", + "Value": "Value4" + }, + { + "Key": "Key3", + "Value": "Value3" } ], - "VersionId": "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI" + "VersionId": "null" }, "comments": { "input": { @@ -886,9 +886,9 @@ "output": { } }, - "description": "The following example retrieves tag set of an object. The request specifies object version.", - "id": "to-retrieve-tag-set-of-a-specific-object-version-1483400283663", - "title": "To retrieve tag set of a specific object version" + "description": "The following example retrieves tag set of an object.", + "id": "to-retrieve-tag-set-of-an-object-1481833847896", + "title": "To retrieve tag set of an object" } ], "GetObjectTorrent": [ @@ -1565,18 +1565,39 @@ } ], "PutObject": [ + { + "input": { + "Body": "HappyFace.jpg", + "Bucket": "examplebucket", + "Key": "HappyFace.jpg" + }, + "output": { + "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", + "VersionId": "tpf3zF08nBplQK1XLOefGskR7mGDwcDk" + }, + "comments": { + "input": { + }, + "output": { + } + }, + "description": "The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file syntax. S3 returns VersionId of the newly created object.", + "id": "to-upload-an-object-1481760101010", + "title": "To upload an object" + }, { "input": { "Body": "filetoupload", "Bucket": "examplebucket", "Key": "exampleobject", - "ServerSideEncryption": "AES256", - "Tagging": "key1=value1&key2=value2" + "Metadata": { + "metadata1": "value1", + "metadata2": "value2" + } }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "ServerSideEncryption": "AES256", - "VersionId": "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt" + "VersionId": "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0" }, "comments": { "input": { @@ -1584,19 +1605,22 @@ "output": { } }, - "description": "The following example uploads and object. The request specifies the optional server-side encryption option. The request also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.", - "id": "to-upload-an-object-and-specify-server-side-encryption-and-object-tags-1483398331831", - "title": "To upload an object and specify server-side encryption and object tags" + "description": "The following example creates an object. The request also specifies optional metadata. If the bucket is versioning enabled, S3 returns version ID in response.", + "id": "to-upload-object-and-specify-user-defined-metadata-1483396974757", + "title": "To upload object and specify user-defined metadata" }, { "input": { "Body": "filetoupload", "Bucket": "examplebucket", - "Key": "objectkey" + "Key": "exampleobject", + "ServerSideEncryption": "AES256", + "Tagging": "key1=value1&key2=value2" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "VersionId": "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ" + "ServerSideEncryption": "AES256", + "VersionId": "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt" }, "comments": { "input": { @@ -1604,9 +1628,9 @@ "output": { } }, - "description": "The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.", - "id": "to-create-an-object-1483147613675", - "title": "To create an object." + "description": "The following example uploads and object. The request specifies the optional server-side encryption option. The request also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.", + "id": "to-upload-an-object-and-specify-server-side-encryption-and-object-tags-1483398331831", + "title": "To upload an object and specify server-side encryption and object tags" }, { "input": { @@ -1652,30 +1676,6 @@ "id": "to-upload-an-object-(specify-optional-headers)", "title": "To upload an object (specify optional headers)" }, - { - "input": { - "Body": "filetoupload", - "Bucket": "examplebucket", - "Key": "exampleobject", - "Metadata": { - "metadata1": "value1", - "metadata2": "value2" - } - }, - "output": { - "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "VersionId": "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0" - }, - "comments": { - "input": { - }, - "output": { - } - }, - "description": "The following example creates an object. The request also specifies optional metadata. If the bucket is versioning enabled, S3 returns version ID in response.", - "id": "to-upload-object-and-specify-user-defined-metadata-1483396974757", - "title": "To upload object and specify user-defined metadata" - }, { "input": { "ACL": "authenticated-read", @@ -1699,13 +1699,13 @@ }, { "input": { - "Body": "HappyFace.jpg", + "Body": "filetoupload", "Bucket": "examplebucket", - "Key": "HappyFace.jpg" + "Key": "objectkey" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "VersionId": "tpf3zF08nBplQK1XLOefGskR7mGDwcDk" + "VersionId": "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ" }, "comments": { "input": { @@ -1713,9 +1713,9 @@ "output": { } }, - "description": "The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file syntax. S3 returns VersionId of the newly created object.", - "id": "to-upload-an-object-1481760101010", - "title": "To upload an object" + "description": "The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.", + "id": "to-create-an-object-1483147613675", + "title": "To create an object." } ], "PutObjectAcl": [ diff --git a/models/apis/s3control/2018-08-20/api-2.json b/models/apis/s3control/2018-08-20/api-2.json index 45569a5d0ff..13d185860bd 100755 --- a/models/apis/s3control/2018-08-20/api-2.json +++ b/models/apis/s3control/2018-08-20/api-2.json @@ -21,8 +21,26 @@ "shape":"CreateAccessPointRequest", "locationName":"CreateAccessPointRequest", "xmlNamespace":{"uri":"http://awss3control.amazonaws.com/doc/2018-08-20/"} + }, + "output":{"shape":"CreateAccessPointResult"}, + "endpoint":{ + "hostPrefix":"{AccountId}." } }, + "CreateBucket":{ + "name":"CreateBucket", + "http":{ + "method":"PUT", + "requestUri":"/v20180820/bucket/{name}" + }, + "input":{"shape":"CreateBucketRequest"}, + "output":{"shape":"CreateBucketResult"}, + "errors":[ + {"shape":"BucketAlreadyExists"}, + {"shape":"BucketAlreadyOwnedByYou"} + ], + "httpChecksumRequired":true + }, "CreateJob":{ "name":"CreateJob", "http":{ @@ -40,7 +58,10 @@ {"shape":"BadRequestException"}, {"shape":"IdempotencyException"}, {"shape":"InternalServiceException"} - ] + ], + "endpoint":{ + "hostPrefix":"{AccountId}." + } }, "DeleteAccessPoint":{ "name":"DeleteAccessPoint", @@ -48,7 +69,10 @@ "method":"DELETE", "requestUri":"/v20180820/accesspoint/{name}" }, - "input":{"shape":"DeleteAccessPointRequest"} + "input":{"shape":"DeleteAccessPointRequest"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + } }, "DeleteAccessPointPolicy":{ "name":"DeleteAccessPointPolicy", @@ -56,7 +80,55 @@ "method":"DELETE", "requestUri":"/v20180820/accesspoint/{name}/policy" }, - "input":{"shape":"DeleteAccessPointPolicyRequest"} + "input":{"shape":"DeleteAccessPointPolicyRequest"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + } + }, + "DeleteBucket":{ + "name":"DeleteBucket", + "http":{ + "method":"DELETE", + "requestUri":"/v20180820/bucket/{name}" + }, + "input":{"shape":"DeleteBucketRequest"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + } + }, + "DeleteBucketLifecycleConfiguration":{ + "name":"DeleteBucketLifecycleConfiguration", + "http":{ + "method":"DELETE", + "requestUri":"/v20180820/bucket/{name}/lifecycleconfiguration" + }, + "input":{"shape":"DeleteBucketLifecycleConfigurationRequest"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + } + }, + "DeleteBucketPolicy":{ + "name":"DeleteBucketPolicy", + "http":{ + "method":"DELETE", + "requestUri":"/v20180820/bucket/{name}/policy" + }, + "input":{"shape":"DeleteBucketPolicyRequest"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + } + }, + "DeleteBucketTagging":{ + "name":"DeleteBucketTagging", + "http":{ + "method":"DELETE", + "requestUri":"/v20180820/bucket/{name}/tagging", + "responseCode":204 + }, + "input":{"shape":"DeleteBucketTaggingRequest"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + } }, "DeleteJobTagging":{ "name":"DeleteJobTagging", @@ -70,7 +142,10 @@ {"shape":"InternalServiceException"}, {"shape":"TooManyRequestsException"}, {"shape":"NotFoundException"} - ] + ], + "endpoint":{ + "hostPrefix":"{AccountId}." + } }, "DeletePublicAccessBlock":{ "name":"DeletePublicAccessBlock", @@ -78,7 +153,10 @@ "method":"DELETE", "requestUri":"/v20180820/configuration/publicAccessBlock" }, - "input":{"shape":"DeletePublicAccessBlockRequest"} + "input":{"shape":"DeletePublicAccessBlockRequest"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + } }, "DescribeJob":{ "name":"DescribeJob", @@ -93,7 +171,10 @@ {"shape":"TooManyRequestsException"}, {"shape":"NotFoundException"}, {"shape":"InternalServiceException"} - ] + ], + "endpoint":{ + "hostPrefix":"{AccountId}." + } }, "GetAccessPoint":{ "name":"GetAccessPoint", @@ -102,7 +183,10 @@ "requestUri":"/v20180820/accesspoint/{name}" }, "input":{"shape":"GetAccessPointRequest"}, - "output":{"shape":"GetAccessPointResult"} + "output":{"shape":"GetAccessPointResult"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + } }, "GetAccessPointPolicy":{ "name":"GetAccessPointPolicy", @@ -111,7 +195,10 @@ "requestUri":"/v20180820/accesspoint/{name}/policy" }, "input":{"shape":"GetAccessPointPolicyRequest"}, - "output":{"shape":"GetAccessPointPolicyResult"} + "output":{"shape":"GetAccessPointPolicyResult"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + } }, "GetAccessPointPolicyStatus":{ "name":"GetAccessPointPolicyStatus", @@ -120,7 +207,58 @@ "requestUri":"/v20180820/accesspoint/{name}/policyStatus" }, "input":{"shape":"GetAccessPointPolicyStatusRequest"}, - "output":{"shape":"GetAccessPointPolicyStatusResult"} + "output":{"shape":"GetAccessPointPolicyStatusResult"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + } + }, + "GetBucket":{ + "name":"GetBucket", + "http":{ + "method":"GET", + "requestUri":"/v20180820/bucket/{name}" + }, + "input":{"shape":"GetBucketRequest"}, + "output":{"shape":"GetBucketResult"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + } + }, + "GetBucketLifecycleConfiguration":{ + "name":"GetBucketLifecycleConfiguration", + "http":{ + "method":"GET", + "requestUri":"/v20180820/bucket/{name}/lifecycleconfiguration" + }, + "input":{"shape":"GetBucketLifecycleConfigurationRequest"}, + "output":{"shape":"GetBucketLifecycleConfigurationResult"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + } + }, + "GetBucketPolicy":{ + "name":"GetBucketPolicy", + "http":{ + "method":"GET", + "requestUri":"/v20180820/bucket/{name}/policy" + }, + "input":{"shape":"GetBucketPolicyRequest"}, + "output":{"shape":"GetBucketPolicyResult"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + } + }, + "GetBucketTagging":{ + "name":"GetBucketTagging", + "http":{ + "method":"GET", + "requestUri":"/v20180820/bucket/{name}/tagging" + }, + "input":{"shape":"GetBucketTaggingRequest"}, + "output":{"shape":"GetBucketTaggingResult"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + } }, "GetJobTagging":{ "name":"GetJobTagging", @@ -134,7 +272,10 @@ {"shape":"InternalServiceException"}, {"shape":"TooManyRequestsException"}, {"shape":"NotFoundException"} - ] + ], + "endpoint":{ + "hostPrefix":"{AccountId}." + } }, "GetPublicAccessBlock":{ "name":"GetPublicAccessBlock", @@ -146,7 +287,10 @@ "output":{"shape":"GetPublicAccessBlockOutput"}, "errors":[ {"shape":"NoSuchPublicAccessBlockConfiguration"} - ] + ], + "endpoint":{ + "hostPrefix":"{AccountId}." + } }, "ListAccessPoints":{ "name":"ListAccessPoints", @@ -155,7 +299,10 @@ "requestUri":"/v20180820/accesspoint" }, "input":{"shape":"ListAccessPointsRequest"}, - "output":{"shape":"ListAccessPointsResult"} + "output":{"shape":"ListAccessPointsResult"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + } }, "ListJobs":{ "name":"ListJobs", @@ -169,7 +316,22 @@ {"shape":"InvalidRequestException"}, {"shape":"InternalServiceException"}, {"shape":"InvalidNextTokenException"} - ] + ], + "endpoint":{ + "hostPrefix":"{AccountId}." + } + }, + "ListRegionalBuckets":{ + "name":"ListRegionalBuckets", + "http":{ + "method":"GET", + "requestUri":"/v20180820/bucket" + }, + "input":{"shape":"ListRegionalBucketsRequest"}, + "output":{"shape":"ListRegionalBucketsResult"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + } }, "PutAccessPointPolicy":{ "name":"PutAccessPointPolicy", @@ -181,8 +343,51 @@ "shape":"PutAccessPointPolicyRequest", "locationName":"PutAccessPointPolicyRequest", "xmlNamespace":{"uri":"http://awss3control.amazonaws.com/doc/2018-08-20/"} + }, + "endpoint":{ + "hostPrefix":"{AccountId}." } }, + "PutBucketLifecycleConfiguration":{ + "name":"PutBucketLifecycleConfiguration", + "http":{ + "method":"PUT", + "requestUri":"/v20180820/bucket/{name}/lifecycleconfiguration" + }, + "input":{"shape":"PutBucketLifecycleConfigurationRequest"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true + }, + "PutBucketPolicy":{ + "name":"PutBucketPolicy", + "http":{ + "method":"PUT", + "requestUri":"/v20180820/bucket/{name}/policy" + }, + "input":{ + "shape":"PutBucketPolicyRequest", + "locationName":"PutBucketPolicyRequest", + "xmlNamespace":{"uri":"http://awss3control.amazonaws.com/doc/2018-08-20/"} + }, + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true + }, + "PutBucketTagging":{ + "name":"PutBucketTagging", + "http":{ + "method":"PUT", + "requestUri":"/v20180820/bucket/{name}/tagging" + }, + "input":{"shape":"PutBucketTaggingRequest"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + }, + "httpChecksumRequired":true + }, "PutJobTagging":{ "name":"PutJobTagging", "http":{ @@ -200,7 +405,10 @@ {"shape":"TooManyRequestsException"}, {"shape":"NotFoundException"}, {"shape":"TooManyTagsException"} - ] + ], + "endpoint":{ + "hostPrefix":"{AccountId}." + } }, "PutPublicAccessBlock":{ "name":"PutPublicAccessBlock", @@ -208,7 +416,10 @@ "method":"PUT", "requestUri":"/v20180820/configuration/publicAccessBlock" }, - "input":{"shape":"PutPublicAccessBlockRequest"} + "input":{"shape":"PutPublicAccessBlockRequest"}, + "endpoint":{ + "hostPrefix":"{AccountId}." + } }, "UpdateJobPriority":{ "name":"UpdateJobPriority", @@ -223,7 +434,10 @@ {"shape":"TooManyRequestsException"}, {"shape":"NotFoundException"}, {"shape":"InternalServiceException"} - ] + ], + "endpoint":{ + "hostPrefix":"{AccountId}." + } }, "UpdateJobStatus":{ "name":"UpdateJobStatus", @@ -239,10 +453,19 @@ {"shape":"NotFoundException"}, {"shape":"JobStatusException"}, {"shape":"InternalServiceException"} - ] + ], + "endpoint":{ + "hostPrefix":"{AccountId}." + } } }, "shapes":{ + "AbortIncompleteMultipartUpload":{ + "type":"structure", + "members":{ + "DaysAfterInitiation":{"shape":"DaysAfterInitiation"} + } + }, "AccessPoint":{ "type":"structure", "required":[ @@ -254,7 +477,8 @@ "Name":{"shape":"AccessPointName"}, "NetworkOrigin":{"shape":"NetworkOrigin"}, "VpcConfiguration":{"shape":"VpcConfiguration"}, - "Bucket":{"shape":"BucketName"} + "Bucket":{"shape":"BucketName"}, + "AccessPointArn":{"shape":"S3AccessPointArn"} } }, "AccessPointList":{ @@ -282,11 +506,49 @@ "exception":true }, "Boolean":{"type":"boolean"}, + "BucketAlreadyExists":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "BucketAlreadyOwnedByYou":{ + "type":"structure", + "members":{ + }, + "exception":true + }, + "BucketCannedACL":{ + "type":"string", + "enum":[ + "private", + "public-read", + "public-read-write", + "authenticated-read" + ] + }, + "BucketLocationConstraint":{ + "type":"string", + "enum":[ + "EU", + "eu-west-1", + "us-west-1", + "us-west-2", + "ap-south-1", + "ap-southeast-1", + "ap-southeast-2", + "ap-northeast-1", + "sa-east-1", + "cn-north-1", + "eu-central-1" + ] + }, "BucketName":{ "type":"string", "max":255, "min":3 }, + "ConfirmRemoveSelfBucketAccess":{"type":"boolean"}, "ConfirmationRequired":{"type":"boolean"}, "CreateAccessPointRequest":{ "type":"structure", @@ -298,6 +560,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, @@ -311,6 +574,86 @@ "PublicAccessBlockConfiguration":{"shape":"PublicAccessBlockConfiguration"} } }, + "CreateAccessPointResult":{ + "type":"structure", + "members":{ + "AccessPointArn":{"shape":"S3AccessPointArn"} + } + }, + "CreateBucketConfiguration":{ + "type":"structure", + "members":{ + "LocationConstraint":{"shape":"BucketLocationConstraint"} + } + }, + "CreateBucketRequest":{ + "type":"structure", + "required":["Bucket"], + "members":{ + "ACL":{ + "shape":"BucketCannedACL", + "location":"header", + "locationName":"x-amz-acl" + }, + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"name" + }, + "CreateBucketConfiguration":{ + "shape":"CreateBucketConfiguration", + "locationName":"CreateBucketConfiguration", + "xmlNamespace":{"uri":"http://awss3control.amazonaws.com/doc/2018-08-20/"} + }, + "GrantFullControl":{ + "shape":"GrantFullControl", + "location":"header", + "locationName":"x-amz-grant-full-control" + }, + "GrantRead":{ + "shape":"GrantRead", + "location":"header", + "locationName":"x-amz-grant-read" + }, + "GrantReadACP":{ + "shape":"GrantReadACP", + "location":"header", + "locationName":"x-amz-grant-read-acp" + }, + "GrantWrite":{ + "shape":"GrantWrite", + "location":"header", + "locationName":"x-amz-grant-write" + }, + "GrantWriteACP":{ + "shape":"GrantWriteACP", + "location":"header", + "locationName":"x-amz-grant-write-acp" + }, + "ObjectLockEnabledForBucket":{ + "shape":"ObjectLockEnabledForBucket", + "location":"header", + "locationName":"x-amz-bucket-object-lock-enabled" + }, + "OutpostId":{ + "shape":"NonEmptyMaxLength64String", + "location":"header", + "locationName":"x-amz-outpost-id" + } + }, + "payload":"CreateBucketConfiguration" + }, + "CreateBucketResult":{ + "type":"structure", + "members":{ + "Location":{ + "shape":"Location", + "location":"header", + "locationName":"Location" + }, + "BucketArn":{"shape":"S3RegionalBucketArn"} + } + }, "CreateJobRequest":{ "type":"structure", "required":[ @@ -325,6 +668,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, @@ -355,6 +699,9 @@ } }, "CreationDate":{"type":"timestamp"}, + "Date":{"type":"timestamp"}, + "Days":{"type":"integer"}, + "DaysAfterInitiation":{"type":"integer"}, "DeleteAccessPointPolicyRequest":{ "type":"structure", "required":[ @@ -364,6 +711,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, @@ -383,6 +731,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, @@ -393,6 +742,86 @@ } } }, + "DeleteBucketLifecycleConfigurationRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Bucket" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"name" + } + } + }, + "DeleteBucketPolicyRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Bucket" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"name" + } + } + }, + "DeleteBucketRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Bucket" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"name" + } + } + }, + "DeleteBucketTaggingRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Bucket" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"name" + } + } + }, "DeleteJobTaggingRequest":{ "type":"structure", "required":[ @@ -402,6 +831,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, @@ -423,6 +853,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" } @@ -437,6 +868,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, @@ -458,6 +890,14 @@ "max":1024, "min":1 }, + "ExpirationStatus":{ + "type":"string", + "enum":[ + "Enabled", + "Disabled" + ] + }, + "ExpiredObjectDeleteMarker":{"type":"boolean"}, "FunctionArnString":{ "type":"string", "max":1024, @@ -473,6 +913,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, @@ -498,6 +939,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, @@ -523,6 +965,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, @@ -544,6 +987,113 @@ "CreationDate":{"shape":"CreationDate"} } }, + "GetBucketLifecycleConfigurationRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Bucket" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"name" + } + } + }, + "GetBucketLifecycleConfigurationResult":{ + "type":"structure", + "members":{ + "Rules":{"shape":"LifecycleRules"} + } + }, + "GetBucketPolicyRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Bucket" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"name" + } + } + }, + "GetBucketPolicyResult":{ + "type":"structure", + "members":{ + "Policy":{"shape":"Policy"} + } + }, + "GetBucketRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Bucket" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"name" + } + } + }, + "GetBucketResult":{ + "type":"structure", + "members":{ + "Bucket":{"shape":"BucketName"}, + "PublicAccessBlockEnabled":{"shape":"PublicAccessBlockEnabled"}, + "CreationDate":{"shape":"CreationDate"} + } + }, + "GetBucketTaggingRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Bucket" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"name" + } + } + }, + "GetBucketTaggingResult":{ + "type":"structure", + "required":["TagSet"], + "members":{ + "TagSet":{"shape":"S3TagSet"} + } + }, "GetJobTaggingRequest":{ "type":"structure", "required":[ @@ -553,6 +1103,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, @@ -582,17 +1133,24 @@ "members":{ "AccountId":{ "shape":"AccountId", + "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" } } }, + "GrantFullControl":{"type":"string"}, + "GrantRead":{"type":"string"}, + "GrantReadACP":{"type":"string"}, + "GrantWrite":{"type":"string"}, + "GrantWriteACP":{"type":"string"}, "IAMRoleArn":{ "type":"string", "max":2048, "min":1, "pattern":"arn:[^:]+:iam::\\d{12}:role/.*" }, + "ID":{"type":"string"}, "IdempotencyException":{ "type":"structure", "members":{ @@ -939,12 +1497,63 @@ "FunctionArn":{"shape":"FunctionArnString"} } }, + "LifecycleConfiguration":{ + "type":"structure", + "members":{ + "Rules":{"shape":"LifecycleRules"} + } + }, + "LifecycleExpiration":{ + "type":"structure", + "members":{ + "Date":{"shape":"Date"}, + "Days":{"shape":"Days"}, + "ExpiredObjectDeleteMarker":{"shape":"ExpiredObjectDeleteMarker"} + } + }, + "LifecycleRule":{ + "type":"structure", + "required":["Status"], + "members":{ + "Expiration":{"shape":"LifecycleExpiration"}, + "ID":{"shape":"ID"}, + "Filter":{"shape":"LifecycleRuleFilter"}, + "Status":{"shape":"ExpirationStatus"}, + "Transitions":{"shape":"TransitionList"}, + "NoncurrentVersionTransitions":{"shape":"NoncurrentVersionTransitionList"}, + "NoncurrentVersionExpiration":{"shape":"NoncurrentVersionExpiration"}, + "AbortIncompleteMultipartUpload":{"shape":"AbortIncompleteMultipartUpload"} + } + }, + "LifecycleRuleAndOperator":{ + "type":"structure", + "members":{ + "Prefix":{"shape":"Prefix"}, + "Tags":{"shape":"S3TagSet"} + } + }, + "LifecycleRuleFilter":{ + "type":"structure", + "members":{ + "Prefix":{"shape":"Prefix"}, + "Tag":{"shape":"S3Tag"}, + "And":{"shape":"LifecycleRuleAndOperator"} + } + }, + "LifecycleRules":{ + "type":"list", + "member":{ + "shape":"LifecycleRule", + "locationName":"Rule" + } + }, "ListAccessPointsRequest":{ "type":"structure", "required":["AccountId"], "members":{ "AccountId":{ "shape":"AccountId", + "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, @@ -978,6 +1587,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, @@ -1006,6 +1616,41 @@ "Jobs":{"shape":"JobListDescriptorList"} } }, + "ListRegionalBucketsRequest":{ + "type":"structure", + "required":["AccountId"], + "members":{ + "AccountId":{ + "shape":"AccountId", + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "NextToken":{ + "shape":"NonEmptyMaxLength1024String", + "location":"querystring", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "OutpostId":{ + "shape":"NonEmptyMaxLength64String", + "location":"header", + "locationName":"x-amz-outpost-id" + } + } + }, + "ListRegionalBucketsResult":{ + "type":"structure", + "members":{ + "RegionalBucketList":{"shape":"RegionalBucketList"}, + "NextToken":{"shape":"NonEmptyMaxLength1024String"} + } + }, + "Location":{"type":"string"}, "MaxLength1024String":{ "type":"string", "max":1024 @@ -1013,7 +1658,7 @@ "MaxResults":{ "type":"integer", "max":1000, - "min":1 + "min":0 }, "NetworkOrigin":{ "type":"string", @@ -1051,6 +1696,26 @@ "max":64, "min":1 }, + "NoncurrentVersionExpiration":{ + "type":"structure", + "members":{ + "NoncurrentDays":{"shape":"Days"} + } + }, + "NoncurrentVersionTransition":{ + "type":"structure", + "members":{ + "NoncurrentDays":{"shape":"Days"}, + "StorageClass":{"shape":"TransitionStorageClass"} + } + }, + "NoncurrentVersionTransitionList":{ + "type":"list", + "member":{ + "shape":"NoncurrentVersionTransition", + "locationName":"NoncurrentVersionTransition" + } + }, "NotFoundException":{ "type":"structure", "members":{ @@ -1058,6 +1723,7 @@ }, "exception":true }, + "ObjectLockEnabledForBucket":{"type":"boolean"}, "OperationName":{ "type":"string", "enum":[ @@ -1080,6 +1746,7 @@ } } }, + "Prefix":{"type":"string"}, "PublicAccessBlockConfiguration":{ "type":"structure", "members":{ @@ -1101,6 +1768,7 @@ } } }, + "PublicAccessBlockEnabled":{"type":"boolean"}, "PutAccessPointPolicyRequest":{ "type":"structure", "required":[ @@ -1111,6 +1779,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, @@ -1122,6 +1791,86 @@ "Policy":{"shape":"Policy"} } }, + "PutBucketLifecycleConfigurationRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Bucket" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"name" + }, + "LifecycleConfiguration":{ + "shape":"LifecycleConfiguration", + "locationName":"LifecycleConfiguration", + "xmlNamespace":{"uri":"http://awss3control.amazonaws.com/doc/2018-08-20/"} + } + }, + "payload":"LifecycleConfiguration" + }, + "PutBucketPolicyRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Bucket", + "Policy" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"name" + }, + "ConfirmRemoveSelfBucketAccess":{ + "shape":"ConfirmRemoveSelfBucketAccess", + "location":"header", + "locationName":"x-amz-confirm-remove-self-bucket-access" + }, + "Policy":{"shape":"Policy"} + } + }, + "PutBucketTaggingRequest":{ + "type":"structure", + "required":[ + "AccountId", + "Bucket", + "Tagging" + ], + "members":{ + "AccountId":{ + "shape":"AccountId", + "hostLabel":true, + "location":"header", + "locationName":"x-amz-account-id" + }, + "Bucket":{ + "shape":"BucketName", + "location":"uri", + "locationName":"name" + }, + "Tagging":{ + "shape":"Tagging", + "locationName":"Tagging", + "xmlNamespace":{"uri":"http://awss3control.amazonaws.com/doc/2018-08-20/"} + } + }, + "payload":"Tagging" + }, "PutJobTaggingRequest":{ "type":"structure", "required":[ @@ -1132,6 +1881,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, @@ -1162,12 +1912,35 @@ }, "AccountId":{ "shape":"AccountId", + "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" } }, "payload":"PublicAccessBlockConfiguration" }, + "RegionalBucket":{ + "type":"structure", + "required":[ + "Bucket", + "PublicAccessBlockEnabled", + "CreationDate" + ], + "members":{ + "Bucket":{"shape":"BucketName"}, + "BucketArn":{"shape":"S3RegionalBucketArn"}, + "PublicAccessBlockEnabled":{"shape":"PublicAccessBlockEnabled"}, + "CreationDate":{"shape":"CreationDate"}, + "OutpostId":{"shape":"NonEmptyMaxLength64String"} + } + }, + "RegionalBucketList":{ + "type":"list", + "member":{ + "shape":"RegionalBucket", + "locationName":"RegionalBucket" + } + }, "ReportPrefixString":{ "type":"string", "max":512, @@ -1201,6 +1974,11 @@ } } }, + "S3AccessPointArn":{ + "type":"string", + "max":128, + "min":4 + }, "S3BucketArnString":{ "type":"string", "max":128, @@ -1380,6 +2158,11 @@ "WRITE_ACP" ] }, + "S3RegionalBucketArn":{ + "type":"string", + "max":128, + "min":4 + }, "S3Retention":{ "type":"structure", "members":{ @@ -1480,6 +2263,13 @@ "max":1024, "pattern":"^([\\p{L}\\p{Z}\\p{N}_.:=+\\-@%]*)$" }, + "Tagging":{ + "type":"structure", + "required":["TagSet"], + "members":{ + "TagSet":{"shape":"S3TagSet"} + } + }, "TimeStamp":{"type":"timestamp"}, "TooManyRequestsException":{ "type":"structure", @@ -1495,6 +2285,31 @@ }, "exception":true }, + "Transition":{ + "type":"structure", + "members":{ + "Date":{"shape":"Date"}, + "Days":{"shape":"Days"}, + "StorageClass":{"shape":"TransitionStorageClass"} + } + }, + "TransitionList":{ + "type":"list", + "member":{ + "shape":"Transition", + "locationName":"Transition" + } + }, + "TransitionStorageClass":{ + "type":"string", + "enum":[ + "GLACIER", + "STANDARD_IA", + "ONEZONE_IA", + "INTELLIGENT_TIERING", + "DEEP_ARCHIVE" + ] + }, "UpdateJobPriorityRequest":{ "type":"structure", "required":[ @@ -1505,6 +2320,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, @@ -1541,6 +2357,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, diff --git a/models/apis/s3control/2018-08-20/docs-2.json b/models/apis/s3control/2018-08-20/docs-2.json index 13c1e6af891..4f92bc1f086 100755 --- a/models/apis/s3control/2018-08-20/docs-2.json +++ b/models/apis/s3control/2018-08-20/docs-2.json @@ -2,27 +2,46 @@ "version": "2.0", "service": "

AWS S3 Control provides access to Amazon S3 control plane operations.

", "operations": { - "CreateAccessPoint": "

Creates an access point and associates it with the specified bucket.

", - "CreateJob": "

You can use Amazon S3 Batch Operations to perform large-scale Batch Operations on Amazon S3 objects. Amazon S3 Batch Operations can execute a single operation or action on lists of Amazon S3 objects that you specify. For more information, see Amazon S3 Batch Operations in the Amazon Simple Storage Service Developer Guide.

Related actions include:

", - "DeleteAccessPoint": "

Deletes the specified access point.

", - "DeleteAccessPointPolicy": "

Deletes the access point policy for the specified access point.

", - "DeleteJobTagging": "

Removes the entire tag set from the specified Amazon S3 Batch Operations job. To use this operation, you must have permission to perform the s3:DeleteJobTagging action. For more information, see Using Job Tags in the Amazon Simple Storage Service Developer Guide.

Related actions include:

", - "DeletePublicAccessBlock": "

Removes the PublicAccessBlock configuration for an Amazon Web Services account.

", - "DescribeJob": "

Retrieves the configuration parameters and status for a Batch Operations job. For more information, see Amazon S3 Batch Operations in the Amazon Simple Storage Service Developer Guide.

Related actions include:

", - "GetAccessPoint": "

Returns configuration information about the specified access point.

", - "GetAccessPointPolicy": "

Returns the access point policy associated with the specified access point.

", + "CreateAccessPoint": "

Creates an access point and associates it with the specified bucket. For more information, see Managing Data Access with Amazon S3 Access Points in the Amazon Simple Storage Service Developer Guide.

Using this action with Amazon S3 on Outposts

This action:

  • Requires a virtual private cloud (VPC) configuration as S3 on Outposts only supports VPC style access points.

  • Does not support ACL on S3 on Outposts buckets.

  • Does not support Public Access on S3 on Outposts buckets.

  • Does not support object lock for S3 on Outposts buckets.

For more information, see Using Amazon S3 on Outposts in the Amazon Simple Storage Service Developer Guide .

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the outpost-id derived using the access point ARN, see the Example section below.

The following actions are related to CreateAccessPoint:

", + "CreateBucket": "

This API operation creates an Amazon S3 on Outposts bucket. To create an S3 bucket, see Create Bucket in the Amazon Simple Storage Service API.

Creates a new Outposts bucket. By creating the bucket, you become the bucket owner. To create an Outposts bucket, you must have S3 on Outposts. For more information, see Using Amazon S3 on Outposts in Amazon Simple Storage Service Developer Guide.

Not every string is an acceptable bucket name. For information on bucket naming restrictions, see Working with Amazon S3 Buckets.

S3 on Outposts buckets do not support

  • ACLs. Instead, configure access point policies to manage access to buckets.

  • Public access.

  • Object Lock

  • Bucket Location constraint

For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and outpost-id in your API request, see the Example section below.

The following actions are related to CreateBucket for Amazon S3 on Outposts:

", + "CreateJob": "

S3 Batch Operations performs large-scale Batch Operations on Amazon S3 objects. Batch Operations can run a single operation or action on lists of Amazon S3 objects that you specify. For more information, see S3 Batch Operations in the Amazon Simple Storage Service Developer Guide.

This operation creates a S3 Batch Operations job.

Related actions include:

", + "DeleteAccessPoint": "

Deletes the specified access point.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the outpost-id derived using the access point ARN, see the ARN, see the Example section below.

The following actions are related to DeleteAccessPoint:

", + "DeleteAccessPointPolicy": "

Deletes the access point policy for the specified access point.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the outpost-id derived using the access point ARN, see the Example section below.

The following actions are related to DeleteAccessPointPolicy:

", + "DeleteBucket": "

This API operation deletes an Amazon S3 on Outposts bucket. To delete an S3 bucket, see DeleteBucket in the Amazon Simple Storage Service API.

Deletes the Amazon S3 on Outposts bucket. All objects (including all object versions and delete markers) in the bucket must be deleted before the bucket itself can be deleted. For more information, see Using Amazon S3 on Outposts in Amazon Simple Storage Service Developer Guide.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the outpost-id derived using the access point ARN, see the Example section below.

Related Resources

", + "DeleteBucketLifecycleConfiguration": "

This API action deletes an Amazon S3 on Outposts bucket's lifecycle configuration. To delete an S3 bucket's lifecycle configuration, see DeleteBucketLifecycle in the Amazon Simple Storage Service API.

Deletes the lifecycle configuration from the specified Outposts bucket. Amazon S3 on Outposts removes all the lifecycle configuration rules in the lifecycle subresource associated with the bucket. Your objects never expire, and Amazon S3 on Outposts no longer automatically deletes any objects on the basis of rules contained in the deleted lifecycle configuration. For more information, see Using Amazon S3 on Outposts in Amazon Simple Storage Service Developer Guide.

To use this operation, you must have permission to perform the s3outposts:DeleteLifecycleConfiguration action. By default, the bucket owner has this permission and the Outposts bucket owner can grant this permission to others.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the outpost-id derived using the access point ARN, see the Example section below.

For more information about object expiration, see Elements to Describe Lifecycle Actions.

Related actions include:

", + "DeleteBucketPolicy": "

This API operation deletes an Amazon S3 on Outposts bucket policy. To delete an S3 bucket policy, see DeleteBucketPolicy in the Amazon Simple Storage Service API.

This implementation of the DELETE operation uses the policy subresource to delete the policy of a specified Amazon S3 on Outposts bucket. If you are using an identity other than the root user of the AWS account that owns the bucket, the calling identity must have the s3outposts:DeleteBucketPolicy permissions on the specified Outposts bucket and belong to the bucket owner's account to use this operation. For more information, see Using Amazon S3 on Outposts in Amazon Simple Storage Service Developer Guide.

If you don't have DeleteBucketPolicy permissions, Amazon S3 returns a 403 Access Denied error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed error.

As a security precaution, the root user of the AWS account that owns a bucket can always use this operation, even if the policy explicitly denies the root user the ability to perform this action.

For more information about bucket policies, see Using Bucket Policies and User Policies.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the outpost-id derived using the access point ARN, see the Example section below.

The following actions are related to DeleteBucketPolicy:

", + "DeleteBucketTagging": "

This API operation deletes an Amazon S3 on Outposts bucket's tags. To delete an S3 bucket tags, see DeleteBucketTagging in the Amazon Simple Storage Service API.

Deletes the tags from the Outposts bucket. For more information, see Using Amazon S3 on Outposts in Amazon Simple Storage Service Developer Guide.

To use this operation, you must have permission to perform the PutBucketTagging action. By default, the bucket owner has this permission and can grant this permission to others.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the outpost-id derived using the access point ARN, see the Example section below.

The following actions are related to DeleteBucketTagging:

", + "DeleteJobTagging": "

Removes the entire tag set from the specified S3 Batch Operations job. To use this operation, you must have permission to perform the s3:DeleteJobTagging action. For more information, see Controlling access and labeling jobs using tags in the Amazon Simple Storage Service Developer Guide.

Related actions include:

", + "DeletePublicAccessBlock": "

Removes the PublicAccessBlock configuration for an AWS account. For more information, see Using Amazon S3 block public access.

Related actions include:

", + "DescribeJob": "

Retrieves the configuration parameters and status for a Batch Operations job. For more information, see S3 Batch Operations in the Amazon Simple Storage Service Developer Guide.

Related actions include:

", + "GetAccessPoint": "

Returns configuration information about the specified access point.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the outpost-id derived using the access point ARN, see the Example section below.

The following actions are related to GetAccessPoint:

", + "GetAccessPointPolicy": "

Returns the access point policy associated with the specified access point.

The following actions are related to GetAccessPointPolicy:

", "GetAccessPointPolicyStatus": "

Indicates whether the specified access point currently has a policy that allows public access. For more information about public access through access points, see Managing Data Access with Amazon S3 Access Points in the Amazon Simple Storage Service Developer Guide.

", - "GetJobTagging": "

Returns the tags on an Amazon S3 Batch Operations job. To use this operation, you must have permission to perform the s3:GetJobTagging action. For more information, see Using Job Tags in the Amazon Simple Storage Service Developer Guide.

Related actions include:

", - "GetPublicAccessBlock": "

Retrieves the PublicAccessBlock configuration for an Amazon Web Services account.

", - "ListAccessPoints": "

Returns a list of the access points currently associated with the specified bucket. You can retrieve up to 1000 access points per call. If the specified bucket has more than 1,000 access points (or the number specified in maxResults, whichever is less), the response will include a continuation token that you can use to list the additional access points.

", - "ListJobs": "

Lists current Amazon S3 Batch Operations jobs and jobs that have ended within the last 30 days for the AWS account making the request. For more information, see Amazon S3 Batch Operations in the Amazon Simple Storage Service Developer Guide.

Related actions include:

", - "PutAccessPointPolicy": "

Associates an access policy with the specified access point. Each access point can have only one policy, so a request made to this API replaces any existing policy associated with the specified access point.

", - "PutJobTagging": "

Set the supplied tag-set on an Amazon S3 Batch Operations job.

A tag is a key-value pair. You can associate Amazon S3 Batch Operations tags with any job by sending a PUT request against the tagging subresource that is associated with the job. To modify the existing tag set, you can either replace the existing tag set entirely, or make changes within the existing tag set by retrieving the existing tag set using GetJobTagging, modify that tag set, and use this API action to replace the tag set with the one you have modified.. For more information, see Using Job Tags in the Amazon Simple Storage Service Developer Guide.

  • If you send this request with an empty tag set, Amazon S3 deletes the existing tag set on the Batch Operations job. If you use this method, you will be charged for a Tier 1 Request (PUT). For more information, see Amazon S3 pricing.

  • For deleting existing tags for your batch operations job, DeleteJobTagging request is preferred because it achieves the same result without incurring charges.

  • A few things to consider about using tags:

    • Amazon S3 limits the maximum number of tags to 50 tags per job.

    • You can associate up to 50 tags with a job as long as they have unique tag keys.

    • A tag key can be up to 128 Unicode characters in length, and tag values can be up to 256 Unicode characters in length.

    • The key and values are case sensitive.

    • For tagging-related restrictions related to characters and encodings, see User-Defined Tag Restrictions.

To use this operation, you must have permission to perform the s3:PutJobTagging action.

Related actions include:

", - "PutPublicAccessBlock": "

Creates or modifies the PublicAccessBlock configuration for an Amazon Web Services account.

", - "UpdateJobPriority": "

Updates an existing Amazon S3 Batch Operations job's priority. For more information, see Amazon S3 Batch Operations in the Amazon Simple Storage Service Developer Guide.

Related actions include:

", - "UpdateJobStatus": "

Updates the status for the specified job. Use this operation to confirm that you want to run a job or to cancel an existing job. For more information, see Amazon S3 Batch Operations in the Amazon Simple Storage Service Developer Guide.

Related actions include:

" + "GetBucket": "

Gets an Amazon S3 on Outposts bucket. For more information, see Using Amazon S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

The following actions are related to GetBucket for Amazon S3 on Outposts:

", + "GetBucketLifecycleConfiguration": "

This API operation gets an Amazon S3 on Outposts bucket's lifecycle configuration. To get an S3 bucket's lifecycle configuration, see GetBucketLifecycleConfiguration in the Amazon Simple Storage Service API.

Returns the lifecycle configuration information set on the Outposts bucket. For more information, see Using Amazon S3 on Outposts and for information about lifecycle configuration, see Object Lifecycle Management in Amazon Simple Storage Service Developer Guide.

To use this operation, you must have permission to perform the s3outposts:GetLifecycleConfiguration action. The Outposts bucket owner has this permission, by default. The bucket owner can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the outpost-id derived using the access point ARN, see the Example section below.

GetBucketLifecycleConfiguration has the following special error:

  • Error code: NoSuchLifecycleConfiguration

    • Description: The lifecycle configuration does not exist.

    • HTTP Status Code: 404 Not Found

    • SOAP Fault Code Prefix: Client

The following actions are related to GetBucketLifecycleConfiguration:

", + "GetBucketPolicy": "

This API action gets a bucket policy for an Amazon S3 on Outposts bucket. To get a policy for an S3 bucket, see GetBucketPolicy in the Amazon Simple Storage Service API.

Returns the policy of a specified Outposts bucket. For more information, see Using Amazon S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

If you are using an identity other than the root user of the AWS account that owns the bucket, the calling identity must have the GetBucketPolicy permissions on the specified bucket and belong to the bucket owner's account in order to use this operation.

If you don't have s3outposts:GetBucketPolicy permissions, Amazon S3 returns a 403 Access Denied error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed error.

As a security precaution, the root user of the AWS account that owns a bucket can always use this operation, even if the policy explicitly denies the root user the ability to perform this action.

For more information about bucket policies, see Using Bucket Policies and User Policies.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the outpost-id derived using the access point ARN, see the Example section below.

The following actions are related to GetBucketPolicy:

", + "GetBucketTagging": "

This API operation gets an Amazon S3 on Outposts bucket's tags. To get an S3 bucket tags, see GetBucketTagging in the Amazon Simple Storage Service API.

Returns the tag set associated with the Outposts bucket. For more information, see Using Amazon S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

To use this operation, you must have permission to perform the GetBucketTagging action. By default, the bucket owner has this permission and can grant this permission to others.

GetBucketTagging has the following special error:

  • Error code: NoSuchTagSetError

    • Description: There is no tag set associated with the bucket.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the outpost-id derived using the access point ARN, see the Example section below.

The following actions are related to GetBucketTagging:

", + "GetJobTagging": "

Returns the tags on an S3 Batch Operations job. To use this operation, you must have permission to perform the s3:GetJobTagging action. For more information, see Controlling access and labeling jobs using tags in the Amazon Simple Storage Service Developer Guide.

Related actions include:

", + "GetPublicAccessBlock": "

Retrieves the PublicAccessBlock configuration for an AWS account. For more information, see Using Amazon S3 block public access.

Related actions include:

", + "ListAccessPoints": "

Returns a list of the access points currently associated with the specified bucket. You can retrieve up to 1000 access points per call. If the specified bucket has more than 1,000 access points (or the number specified in maxResults, whichever is less), the response will include a continuation token that you can use to list the additional access points.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the outpost-id derived using the access point ARN, see the Example section below.

The following actions are related to ListAccessPoints:

", + "ListJobs": "

Lists current S3 Batch Operations jobs and jobs that have ended within the last 30 days for the AWS account making the request. For more information, see S3 Batch Operations in the Amazon Simple Storage Service Developer Guide.

Related actions include:

", + "ListRegionalBuckets": "

Returns a list of all Outposts buckets in an Outposts that are owned by the authenticated sender of the request. For more information, see Using Amazon S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and outpost-id in your API request, see the Example section below.

", + "PutAccessPointPolicy": "

Associates an access policy with the specified access point. Each access point can have only one policy, so a request made to this API replaces any existing policy associated with the specified access point.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the outpost-id derived using the access point ARN, see the Example section below.

The following actions are related to PutAccessPointPolicy:

", + "PutBucketLifecycleConfiguration": "

This API action puts a lifecycle configuration to an Amazon S3 on Outposts bucket. To put a lifecycle configuration to an S3 bucket, see PutBucketLifecycleConfiguration in the Amazon Simple Storage Service API.

Creates a new lifecycle configuration for the Outposts bucket or replaces an existing lifecycle configuration. Outposts buckets can only support a lifecycle that deletes objects after a certain period of time. For more information, see Managing Lifecycle Permissions for Amazon S3 on Outposts.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the outpost-id derived using the access point ARN, see the Example section below.

The following actions are related to PutBucketLifecycleConfiguration:

", + "PutBucketPolicy": "

This API action puts a bucket policy to an Amazon S3 on Outposts bucket. To put a policy on an S3 bucket, see PutBucketPolicy in the Amazon Simple Storage Service API.

Applies an Amazon S3 bucket policy to an Outposts bucket. For more information, see Using Amazon S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

If you are using an identity other than the root user of the AWS account that owns the Outposts bucket, the calling identity must have the PutBucketPolicy permissions on the specified Outposts bucket and belong to the bucket owner's account in order to use this operation.

If you don't have PutBucketPolicy permissions, Amazon S3 returns a 403 Access Denied error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed error.

As a security precaution, the root user of the AWS account that owns a bucket can always use this operation, even if the policy explicitly denies the root user the ability to perform this action.

For more information about bucket policies, see Using Bucket Policies and User Policies.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the outpost-id derived using the access point ARN, see the Example section below.

The following actions are related to PutBucketPolicy:

", + "PutBucketTagging": "

This API action puts tags on an Amazon S3 on Outposts bucket. To put tags on an S3 bucket, see PutBucketTagging in the Amazon Simple Storage Service API.

Sets the tags for an Outposts bucket. For more information, see Using Amazon S3 on Outposts in the Amazon Simple Storage Service Developer Guide.

Use tags to organize your AWS bill to reflect your own cost structure. To do this, sign up to get your AWS account bill with tag key values included. Then, to see the cost of combined resources, organize your billing information according to resources with the same tag key values. For example, you can tag several resources with a specific application name, and then organize your billing information to see the total cost of that application across several services. For more information, see Cost Allocation and Tagging.

Within a bucket, if you add a tag that has the same key as an existing tag, the new value overwrites the old value. For more information, see Using Cost Allocation in Amazon S3 Bucket Tags.

To use this operation, you must have permissions to perform the s3outposts:PutBucketTagging action. The Outposts bucket owner has this permission by default and can grant this permission to others. For more information about permissions, see Permissions Related to Bucket Subresource Operations and Managing Access Permissions to Your Amazon S3 Resources.

PutBucketTagging has the following special errors:

  • Error code: InvalidTagError

  • Error code: MalformedXMLError

    • Description: The XML provided does not match the schema.

  • Error code: OperationAbortedError

    • Description: A conflicting conditional operation is currently in progress against this resource. Try again.

  • Error code: InternalError

    • Description: The service was unable to apply the provided tag to the bucket.

All Amazon S3 on Outposts REST API requests for this action require an additional parameter of outpost-id to be passed with the request and an S3 on Outposts endpoint hostname prefix instead of s3-control. For an example of the request syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname prefix and the outpost-id derived using the access point ARN, see the Example section below.

The following actions are related to PutBucketTagging:

", + "PutJobTagging": "

Sets the supplied tag-set on an S3 Batch Operations job.

A tag is a key-value pair. You can associate S3 Batch Operations tags with any job by sending a PUT request against the tagging subresource that is associated with the job. To modify the existing tag set, you can either replace the existing tag set entirely, or make changes within the existing tag set by retrieving the existing tag set using GetJobTagging, modify that tag set, and use this API action to replace the tag set with the one you modified. For more information, see Controlling access and labeling jobs using tags in the Amazon Simple Storage Service Developer Guide.

  • If you send this request with an empty tag set, Amazon S3 deletes the existing tag set on the Batch Operations job. If you use this method, you are charged for a Tier 1 Request (PUT). For more information, see Amazon S3 pricing.

  • For deleting existing tags for your Batch Operations job, a DeleteJobTagging request is preferred because it achieves the same result without incurring charges.

  • A few things to consider about using tags:

    • Amazon S3 limits the maximum number of tags to 50 tags per job.

    • You can associate up to 50 tags with a job as long as they have unique tag keys.

    • A tag key can be up to 128 Unicode characters in length, and tag values can be up to 256 Unicode characters in length.

    • The key and values are case sensitive.

    • For tagging-related restrictions related to characters and encodings, see User-Defined Tag Restrictions in the AWS Billing and Cost Management User Guide.

To use this operation, you must have permission to perform the s3:PutJobTagging action.

Related actions include:

", + "PutPublicAccessBlock": "

Creates or modifies the PublicAccessBlock configuration for an AWS account. For more information, see Using Amazon S3 block public access.

Related actions include:

", + "UpdateJobPriority": "

Updates an existing S3 Batch Operations job's priority. For more information, see S3 Batch Operations in the Amazon Simple Storage Service Developer Guide.

Related actions include:

", + "UpdateJobStatus": "

Updates the status for the specified job. Use this operation to confirm that you want to run a job or to cancel an existing job. For more information, see S3 Batch Operations in the Amazon Simple Storage Service Developer Guide.

Related actions include:

" }, "shapes": { + "AbortIncompleteMultipartUpload": { + "base": "

The container for abort incomplete multipart upload

", + "refs": { + "LifecycleRule$AbortIncompleteMultipartUpload": "

Specifies the days since the initiation of an incomplete multipart upload that Amazon S3 waits before permanently removing all parts of the upload. For more information, see Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Policy in the Amazon Simple Storage Service Developer Guide.

" + } + }, "AccessPoint": { "base": "

An access point used to access a bucket.

", "refs": { @@ -40,35 +59,47 @@ "refs": { "AccessPoint$Name": "

The name of this access point.

", "CreateAccessPointRequest$Name": "

The name you want to assign to this access point.

", - "DeleteAccessPointPolicyRequest$Name": "

The name of the access point whose policy you want to delete.

", - "DeleteAccessPointRequest$Name": "

The name of the access point you want to delete.

", - "GetAccessPointPolicyRequest$Name": "

The name of the access point whose policy you want to retrieve.

", + "DeleteAccessPointPolicyRequest$Name": "

The name of the access point whose policy you want to delete.

For Amazon S3 on Outposts specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>. For example, to access the access point reports-ap through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. The value must be URL encoded.

", + "DeleteAccessPointRequest$Name": "

The name of the access point you want to delete.

For Amazon S3 on Outposts specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>. For example, to access the access point reports-ap through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. The value must be URL encoded.

", + "GetAccessPointPolicyRequest$Name": "

The name of the access point whose policy you want to retrieve.

For Amazon S3 on Outposts specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>. For example, to access the access point reports-ap through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. The value must be URL encoded.

", "GetAccessPointPolicyStatusRequest$Name": "

The name of the access point whose policy status you want to retrieve.

", - "GetAccessPointRequest$Name": "

The name of the access point whose configuration information you want to retrieve.

", + "GetAccessPointRequest$Name": "

The name of the access point whose configuration information you want to retrieve.

For Amazon S3 on Outposts specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>. For example, to access the access point reports-ap through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. The value must be URL encoded.

", "GetAccessPointResult$Name": "

The name of the specified access point.

", - "PutAccessPointPolicyRequest$Name": "

The name of the access point that you want to associate with the specified policy.

" + "PutAccessPointPolicyRequest$Name": "

The name of the access point that you want to associate with the specified policy.

For Amazon S3 on Outposts specify the ARN of the access point accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/accesspoint/<my-accesspoint-name>. For example, to access the access point reports-ap through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. The value must be URL encoded.

" } }, "AccountId": { "base": null, "refs": { "CreateAccessPointRequest$AccountId": "

The AWS account ID for the owner of the bucket for which you want to create an access point.

", - "CreateJobRequest$AccountId": "

", + "CreateJobRequest$AccountId": "

The AWS account ID that creates the job.

", "DeleteAccessPointPolicyRequest$AccountId": "

The account ID for the account that owns the specified access point.

", "DeleteAccessPointRequest$AccountId": "

The account ID for the account that owns the specified access point.

", - "DeleteJobTaggingRequest$AccountId": "

The AWS account ID associated with the Amazon S3 Batch Operations job.

", - "DeletePublicAccessBlockRequest$AccountId": "

The account ID for the Amazon Web Services account whose PublicAccessBlock configuration you want to remove.

", + "DeleteBucketLifecycleConfigurationRequest$AccountId": "

The account ID of the lifecycle configuration to delete.

", + "DeleteBucketPolicyRequest$AccountId": "

The account ID of the Outposts bucket.

", + "DeleteBucketRequest$AccountId": "

The account ID that owns the Outposts bucket.

", + "DeleteBucketTaggingRequest$AccountId": "

The AWS account ID of the Outposts bucket tag set to be removed.

", + "DeleteJobTaggingRequest$AccountId": "

The AWS account ID associated with the S3 Batch Operations job.

", + "DeletePublicAccessBlockRequest$AccountId": "

The account ID for the AWS account whose PublicAccessBlock configuration you want to remove.

", "DescribeJobRequest$AccountId": "

", "GetAccessPointPolicyRequest$AccountId": "

The account ID for the account that owns the specified access point.

", "GetAccessPointPolicyStatusRequest$AccountId": "

The account ID for the account that owns the specified access point.

", "GetAccessPointRequest$AccountId": "

The account ID for the account that owns the specified access point.

", - "GetJobTaggingRequest$AccountId": "

The AWS account ID associated with the Amazon S3 Batch Operations job.

", - "GetPublicAccessBlockRequest$AccountId": "

The account ID for the Amazon Web Services account whose PublicAccessBlock configuration you want to retrieve.

", + "GetBucketLifecycleConfigurationRequest$AccountId": "

The AWS account ID of the Outposts bucket.

", + "GetBucketPolicyRequest$AccountId": "

The AWS account ID of the Outposts bucket.

", + "GetBucketRequest$AccountId": "

The AWS account ID of the Outposts bucket.

", + "GetBucketTaggingRequest$AccountId": "

The AWS account ID of the Outposts bucket.

", + "GetJobTaggingRequest$AccountId": "

The AWS account ID associated with the S3 Batch Operations job.

", + "GetPublicAccessBlockRequest$AccountId": "

The account ID for the AWS account whose PublicAccessBlock configuration you want to retrieve.

", "ListAccessPointsRequest$AccountId": "

The AWS account ID for owner of the bucket whose access points you want to list.

", "ListJobsRequest$AccountId": "

", + "ListRegionalBucketsRequest$AccountId": "

The AWS account ID of the Outposts bucket.

", "PutAccessPointPolicyRequest$AccountId": "

The AWS account ID for owner of the bucket associated with the specified access point.

", - "PutJobTaggingRequest$AccountId": "

The AWS account ID associated with the Amazon S3 Batch Operations job.

", - "PutPublicAccessBlockRequest$AccountId": "

The account ID for the Amazon Web Services account whose PublicAccessBlock configuration you want to set.

", + "PutBucketLifecycleConfigurationRequest$AccountId": "

The AWS account ID of the Outposts bucket.

", + "PutBucketPolicyRequest$AccountId": "

The AWS account ID of the Outposts bucket.

", + "PutBucketTaggingRequest$AccountId": "

The AWS account ID of the Outposts bucket.

", + "PutJobTaggingRequest$AccountId": "

The AWS account ID associated with the S3 Batch Operations job.

", + "PutPublicAccessBlockRequest$AccountId": "

The account ID for the AWS account whose PublicAccessBlock configuration you want to set.

", "UpdateJobPriorityRequest$AccountId": "

", "UpdateJobStatusRequest$AccountId": "

" } @@ -84,16 +115,58 @@ "JobReport$Enabled": "

Indicates whether the specified job will generate a job-completion report.

", "S3CopyObjectOperation$RequesterPays": "

", "S3ObjectMetadata$RequesterCharged": "

", - "S3SetObjectRetentionOperation$BypassGovernanceRetention": "

Indicates if the operation should be applied to objects in the Batch Operations job even if they have Governance-type Object Lock in place.

" + "S3SetObjectRetentionOperation$BypassGovernanceRetention": "

Indicates if the action should be applied to objects in the Batch Operations job even if they have Object Lock GOVERNANCE type in place.

" + } + }, + "BucketAlreadyExists": { + "base": "

The requested Outposts bucket name is not available. The bucket namespace is shared by all users of the AWS Outposts in this Region. Select a different name and try again.

", + "refs": { + } + }, + "BucketAlreadyOwnedByYou": { + "base": "

The Outposts bucket you tried to create already exists, and you own it.

", + "refs": { + } + }, + "BucketCannedACL": { + "base": null, + "refs": { + "CreateBucketRequest$ACL": "

The canned ACL to apply to the bucket.

This is not supported by Amazon S3 on Outposts buckets.

" + } + }, + "BucketLocationConstraint": { + "base": null, + "refs": { + "CreateBucketConfiguration$LocationConstraint": "

Specifies the Region where the bucket will be created. If you are creating a bucket on the US East (N. Virginia) Region (us-east-1), you do not need to specify the location.

This is not supported by Amazon S3 on Outposts buckets.

" } }, "BucketName": { "base": null, "refs": { "AccessPoint$Bucket": "

The name of the bucket associated with this access point.

", - "CreateAccessPointRequest$Bucket": "

The name of the bucket that you want to associate this access point with.

", + "CreateAccessPointRequest$Bucket": "

The name of the bucket that you want to associate this access point with.

For Amazon S3 on Outposts specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

", + "CreateBucketRequest$Bucket": "

The name of the bucket.

", + "DeleteBucketLifecycleConfigurationRequest$Bucket": "

The bucket ARN of the bucket.

For Amazon S3 on Outposts specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

", + "DeleteBucketPolicyRequest$Bucket": "

The ARN of the bucket.

For Amazon S3 on Outposts specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

", + "DeleteBucketRequest$Bucket": "

Specifies the bucket being deleted.

For Amazon S3 on Outposts specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

", + "DeleteBucketTaggingRequest$Bucket": "

The bucket ARN that has the tag set to be removed.

For Amazon S3 on Outposts specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

", "GetAccessPointResult$Bucket": "

The name of the bucket associated with the specified access point.

", - "ListAccessPointsRequest$Bucket": "

The name of the bucket whose associated access points you want to list.

" + "GetBucketLifecycleConfigurationRequest$Bucket": "

The Amazon Resource Name (ARN) of the bucket.

For Amazon S3 on Outposts specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

", + "GetBucketPolicyRequest$Bucket": "

The ARN of the bucket.

For Amazon S3 on Outposts specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

", + "GetBucketRequest$Bucket": "

The ARN of the bucket.

For Amazon S3 on Outposts specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

", + "GetBucketResult$Bucket": "

The Outposts bucket requested.

", + "GetBucketTaggingRequest$Bucket": "

The ARN of the bucket.

For Amazon S3 on Outposts specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

", + "ListAccessPointsRequest$Bucket": "

The name of the bucket whose associated access points you want to list.

For Amazon S3 on Outposts specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

", + "PutBucketLifecycleConfigurationRequest$Bucket": "

The name of the bucket for which to set the configuration.

", + "PutBucketPolicyRequest$Bucket": "

The ARN of the bucket.

For Amazon S3 on Outposts specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

", + "PutBucketTaggingRequest$Bucket": "

The Amazon Resource Name (ARN) of the bucket.

For Amazon S3 on Outposts specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

", + "RegionalBucket$Bucket": "

" + } + }, + "ConfirmRemoveSelfBucketAccess": { + "base": null, + "refs": { + "PutBucketPolicyRequest$ConfirmRemoveSelfBucketAccess": "

Set this parameter to true to confirm that you want to remove your permissions to change this bucket policy in the future.

This is not supported by Amazon S3 on Outposts buckets.

" } }, "ConfirmationRequired": { @@ -108,6 +181,27 @@ "refs": { } }, + "CreateAccessPointResult": { + "base": null, + "refs": { + } + }, + "CreateBucketConfiguration": { + "base": "

The container for the bucket configuration.

This is not supported by Amazon S3 on Outposts buckets.

", + "refs": { + "CreateBucketRequest$CreateBucketConfiguration": "

The configuration information for the bucket.

This is not supported by Amazon S3 on Outposts buckets.

" + } + }, + "CreateBucketRequest": { + "base": null, + "refs": { + } + }, + "CreateBucketResult": { + "base": null, + "refs": { + } + }, "CreateJobRequest": { "base": null, "refs": { @@ -121,7 +215,31 @@ "CreationDate": { "base": null, "refs": { - "GetAccessPointResult$CreationDate": "

The date and time when the specified access point was created.

" + "GetAccessPointResult$CreationDate": "

The date and time when the specified access point was created.

", + "GetBucketResult$CreationDate": "

The creation date of the Outposts bucket.

", + "RegionalBucket$CreationDate": "

The creation date of the regional bucket

" + } + }, + "Date": { + "base": null, + "refs": { + "LifecycleExpiration$Date": "

Indicates at what date the object is to be deleted. Should be in GMT ISO 8601 format.

", + "Transition$Date": "

Indicates when objects are transitioned to the specified storage class. The date value must be in ISO 8601 format. The time is always midnight UTC.

" + } + }, + "Days": { + "base": null, + "refs": { + "LifecycleExpiration$Days": "

Indicates the lifetime, in days, of the objects that are subject to the rule. The value must be a non-zero positive integer.

", + "NoncurrentVersionExpiration$NoncurrentDays": "

Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see How Amazon S3 Calculates When an Object Became Noncurrent in the Amazon Simple Storage Service Developer Guide.

", + "NoncurrentVersionTransition$NoncurrentDays": "

Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see How Amazon S3 Calculates How Long an Object Has Been Noncurrent in the Amazon Simple Storage Service Developer Guide.

", + "Transition$Days": "

Indicates the number of days after creation when objects are transitioned to the specified storage class. The value must be a positive integer.

" + } + }, + "DaysAfterInitiation": { + "base": null, + "refs": { + "AbortIncompleteMultipartUpload$DaysAfterInitiation": "

Specifies the number of days after which Amazon S3 aborts an incomplete multipart upload to the Outposts bucket.

" } }, "DeleteAccessPointPolicyRequest": { @@ -134,6 +252,26 @@ "refs": { } }, + "DeleteBucketLifecycleConfigurationRequest": { + "base": null, + "refs": { + } + }, + "DeleteBucketPolicyRequest": { + "base": null, + "refs": { + } + }, + "DeleteBucketRequest": { + "base": null, + "refs": { + } + }, + "DeleteBucketTaggingRequest": { + "base": null, + "refs": { + } + }, "DeleteJobTaggingRequest": { "base": null, "refs": { @@ -173,6 +311,18 @@ "TooManyTagsException$Message": null } }, + "ExpirationStatus": { + "base": null, + "refs": { + "LifecycleRule$Status": "

If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is not currently being applied.

" + } + }, + "ExpiredObjectDeleteMarker": { + "base": null, + "refs": { + "LifecycleExpiration$ExpiredObjectDeleteMarker": "

Indicates whether Amazon S3 will remove a delete marker with no noncurrent versions. If set to true, the delete marker will be expired. If set to false, the policy takes no action. This cannot be specified with Days or Date in a Lifecycle Expiration Policy.

" + } + }, "FunctionArnString": { "base": null, "refs": { @@ -209,6 +359,46 @@ "refs": { } }, + "GetBucketLifecycleConfigurationRequest": { + "base": null, + "refs": { + } + }, + "GetBucketLifecycleConfigurationResult": { + "base": null, + "refs": { + } + }, + "GetBucketPolicyRequest": { + "base": null, + "refs": { + } + }, + "GetBucketPolicyResult": { + "base": null, + "refs": { + } + }, + "GetBucketRequest": { + "base": null, + "refs": { + } + }, + "GetBucketResult": { + "base": null, + "refs": { + } + }, + "GetBucketTaggingRequest": { + "base": null, + "refs": { + } + }, + "GetBucketTaggingResult": { + "base": null, + "refs": { + } + }, "GetJobTaggingRequest": { "base": null, "refs": { @@ -229,11 +419,47 @@ "refs": { } }, + "GrantFullControl": { + "base": null, + "refs": { + "CreateBucketRequest$GrantFullControl": "

Allows grantee the read, write, read ACP, and write ACP permissions on the bucket.

This is not supported by Amazon S3 on Outposts buckets.

" + } + }, + "GrantRead": { + "base": null, + "refs": { + "CreateBucketRequest$GrantRead": "

Allows grantee to list the objects in the bucket.

This is not supported by Amazon S3 on Outposts buckets.

" + } + }, + "GrantReadACP": { + "base": null, + "refs": { + "CreateBucketRequest$GrantReadACP": "

Allows grantee to read the bucket ACL.

This is not supported by Amazon S3 on Outposts buckets.

" + } + }, + "GrantWrite": { + "base": null, + "refs": { + "CreateBucketRequest$GrantWrite": "

Allows grantee to create, overwrite, and delete any object in the bucket.

This is not supported by Amazon S3 on Outposts buckets.

" + } + }, + "GrantWriteACP": { + "base": null, + "refs": { + "CreateBucketRequest$GrantWriteACP": "

Allows grantee to write the ACL for the applicable bucket.

This is not supported by Amazon S3 on Outposts buckets.

" + } + }, "IAMRoleArn": { "base": null, "refs": { - "CreateJobRequest$RoleArn": "

The Amazon Resource Name (ARN) for the AWS Identity and Access Management (IAM) role that Batch Operations will use to execute this job's operation on each object in the manifest.

", - "JobDescriptor$RoleArn": "

The Amazon Resource Name (ARN) for the AWS Identity and Access Management (IAM) role assigned to execute the tasks for this job.

" + "CreateJobRequest$RoleArn": "

The Amazon Resource Name (ARN) for the AWS Identity and Access Management (IAM) role that Batch Operations will use to run this job's operation on each object in the manifest.

", + "JobDescriptor$RoleArn": "

The Amazon Resource Name (ARN) for the AWS Identity and Access Management (IAM) role assigned to run the tasks for this job.

" + } + }, + "ID": { + "base": null, + "refs": { + "LifecycleRule$ID": "

Unique identifier for the rule. The value cannot be longer than 255 characters.

" } }, "IdempotencyException": { @@ -309,12 +535,12 @@ "base": null, "refs": { "CreateJobResult$JobId": "

The ID for this job. Amazon S3 generates this ID automatically and returns it after a successful Create Job request.

", - "DeleteJobTaggingRequest$JobId": "

The ID for the Amazon S3 Batch Operations job whose tags you want to delete.

", + "DeleteJobTaggingRequest$JobId": "

The ID for the S3 Batch Operations job whose tags you want to delete.

", "DescribeJobRequest$JobId": "

The ID for the job whose information you want to retrieve.

", - "GetJobTaggingRequest$JobId": "

The ID for the Amazon S3 Batch Operations job whose tags you want to retrieve.

", + "GetJobTaggingRequest$JobId": "

The ID for the S3 Batch Operations job whose tags you want to retrieve.

", "JobDescriptor$JobId": "

The ID for the specified job.

", "JobListDescriptor$JobId": "

The ID for the specified job.

", - "PutJobTaggingRequest$JobId": "

The ID for the Amazon S3 Batch Operations job whose tags you want to replace.

", + "PutJobTaggingRequest$JobId": "

The ID for the S3 Batch Operations job whose tags you want to replace.

", "UpdateJobPriorityRequest$JobId": "

The ID for the job whose priority you want to update.

", "UpdateJobPriorityResult$JobId": "

The ID for the job whose priority Amazon S3 updated.

", "UpdateJobStatusRequest$JobId": "

The ID of the job whose status you want to update.

", @@ -383,10 +609,10 @@ } }, "JobOperation": { - "base": "

The operation that you want this job to perform on each object listed in the manifest. For more information about the available operations, see Available Operations in the Amazon Simple Storage Service Developer Guide.

", + "base": "

The operation that you want this job to perform on each object listed in the manifest. For more information about the available operations, see Operations in the Amazon Simple Storage Service Developer Guide.

", "refs": { - "CreateJobRequest$Operation": "

The operation that you want this job to perform on each object listed in the manifest. For more information about the available operations, see Available Operations in the Amazon Simple Storage Service Developer Guide.

", - "JobDescriptor$Operation": "

The operation that the specified job is configured to execute on the objects listed in the manifest.

" + "CreateJobRequest$Operation": "

The operation that you want this job to perform on each object listed in the manifest. For more information about the available operations, see Operations in the Amazon Simple Storage Service Developer Guide.

", + "JobDescriptor$Operation": "

The operation that the specified job is configured to run on the objects listed in the manifest.

" } }, "JobPriority": { @@ -400,10 +626,10 @@ } }, "JobProgressSummary": { - "base": "

Describes the total number of tasks that the specified job has executed, the number of tasks that succeeded, and the number of tasks that failed.

", + "base": "

Describes the total number of tasks that the specified job has started, the number of tasks that succeeded, and the number of tasks that failed.

", "refs": { - "JobDescriptor$ProgressSummary": "

Describes the total number of tasks that the specified job has executed, the number of tasks that succeeded, and the number of tasks that failed.

", - "JobListDescriptor$ProgressSummary": "

Describes the total number of tasks that the specified job has executed, the number of tasks that succeeded, and the number of tasks that failed.

" + "JobDescriptor$ProgressSummary": "

Describes the total number of tasks that the specified job has run, the number of tasks that succeeded, and the number of tasks that failed.

", + "JobListDescriptor$ProgressSummary": "

Describes the total number of tasks that the specified job has run, the number of tasks that succeeded, and the number of tasks that failed.

" } }, "JobReport": { @@ -448,7 +674,7 @@ "JobStatusUpdateReason": { "base": null, "refs": { - "JobDescriptor$StatusUpdateReason": "

", + "JobDescriptor$StatusUpdateReason": "

The reason for updating the job.

", "UpdateJobStatusRequest$StatusUpdateReason": "

A description of the reason why you want to change the specified job's status. This field can be any string up to the maximum length.

", "UpdateJobStatusResult$StatusUpdateReason": "

The reason that the specified job's status was updated.

" } @@ -478,6 +704,43 @@ "JobOperation$LambdaInvoke": "

Directs the specified job to invoke an AWS Lambda function on each object in the manifest.

" } }, + "LifecycleConfiguration": { + "base": "

The container for the Outposts bucket lifecycle configuration.

", + "refs": { + "PutBucketLifecycleConfigurationRequest$LifecycleConfiguration": "

Container for lifecycle rules. You can add as many as 1,000 rules.

" + } + }, + "LifecycleExpiration": { + "base": "

The container of the Outposts bucket lifecycle expiration.

", + "refs": { + "LifecycleRule$Expiration": "

Specifies the expiration for the lifecycle of the object in the form of date, days and, whether the object has a delete marker.

" + } + }, + "LifecycleRule": { + "base": "

The container for the Outposts bucket lifecycle rule.

", + "refs": { + "LifecycleRules$member": null + } + }, + "LifecycleRuleAndOperator": { + "base": "

The container for the Outposts bucket lifecycle rule and operator.

", + "refs": { + "LifecycleRuleFilter$And": "

The container for the AND condition for the lifecycle rule.

" + } + }, + "LifecycleRuleFilter": { + "base": "

The container for the filter of the lifecycle rule.

", + "refs": { + "LifecycleRule$Filter": "

The container for the filter of lifecycle rule.

" + } + }, + "LifecycleRules": { + "base": null, + "refs": { + "GetBucketLifecycleConfigurationResult$Rules": "

Container for the lifecycle rule of the Outposts bucket.

", + "LifecycleConfiguration$Rules": "

A lifecycle rule for individual objects in an Outposts bucket.

" + } + }, "ListAccessPointsRequest": { "base": null, "refs": { @@ -498,6 +761,22 @@ "refs": { } }, + "ListRegionalBucketsRequest": { + "base": null, + "refs": { + } + }, + "ListRegionalBucketsResult": { + "base": null, + "refs": { + } + }, + "Location": { + "base": null, + "refs": { + "CreateBucketResult$Location": "

The location of the bucket.

" + } + }, "MaxLength1024String": { "base": null, "refs": { @@ -508,14 +787,15 @@ "base": null, "refs": { "ListAccessPointsRequest$MaxResults": "

The maximum number of access points that you want to include in the list. If the specified bucket has more than this number of access points, then the response will include a continuation token in the NextToken field that you can use to retrieve the next page of access points.

", - "ListJobsRequest$MaxResults": "

The maximum number of jobs that Amazon S3 will include in the List Jobs response. If there are more jobs than this number, the response will include a pagination token in the NextToken field to enable you to retrieve the next page of results.

" + "ListJobsRequest$MaxResults": "

The maximum number of jobs that Amazon S3 will include in the List Jobs response. If there are more jobs than this number, the response will include a pagination token in the NextToken field to enable you to retrieve the next page of results.

", + "ListRegionalBucketsRequest$MaxResults": "

" } }, "NetworkOrigin": { "base": null, "refs": { "AccessPoint$NetworkOrigin": "

Indicates whether this access point allows access from the public internet. If VpcConfiguration is specified for this access point, then NetworkOrigin is VPC, and the access point doesn't allow access from the public internet. Otherwise, NetworkOrigin is Internet, and the access point allows access from the public internet, subject to the access point and bucket access policies.

", - "GetAccessPointResult$NetworkOrigin": "

Indicates whether this access point allows access from the public internet. If VpcConfiguration is specified for this access point, then NetworkOrigin is VPC, and the access point doesn't allow access from the public internet. Otherwise, NetworkOrigin is Internet, and the access point allows access from the public internet, subject to the access point and bucket access policies.

" + "GetAccessPointResult$NetworkOrigin": "

Indicates whether this access point allows access from the public internet. If VpcConfiguration is specified for this access point, then NetworkOrigin is VPC, and the access point doesn't allow access from the public internet. Otherwise, NetworkOrigin is Internet, and the access point allows access from the public internet, subject to the access point and bucket access policies.

This will always be true for an Amazon S3 on Outposts access point

" } }, "NoSuchPublicAccessBlockConfiguration": { @@ -534,7 +814,9 @@ "refs": { "JobManifestLocation$ETag": "

The ETag for the specified manifest object.

", "ListAccessPointsRequest$NextToken": "

A continuation token. If a previous call to ListAccessPoints returned a continuation token in the NextToken field, then providing that value here causes Amazon S3 to retrieve the next page of results.

", - "ListAccessPointsResult$NextToken": "

If the specified bucket has more access points than can be returned in one call to this API, then this field contains a continuation token that you can provide in subsequent calls to this API to retrieve additional access points.

", + "ListAccessPointsResult$NextToken": "

If the specified bucket has more access points than can be returned in one call to this API, this field contains a continuation token that you can provide in subsequent calls to this API to retrieve additional access points.

", + "ListRegionalBucketsRequest$NextToken": "

", + "ListRegionalBucketsResult$NextToken": "

NextToken is sent when isTruncated is true, which means there are more buckets that can be listed. The next list requests to Amazon S3 can be continued with this NextToken. NextToken is obfuscated and is not a real key.

", "S3CopyObjectOperation$TargetKeyPrefix": "

", "S3Grantee$Identifier": "

", "S3Grantee$DisplayName": "

", @@ -566,7 +848,28 @@ "NonEmptyMaxLength64String": { "base": null, "refs": { - "CreateJobRequest$ClientRequestToken": "

An idempotency token to ensure that you don't accidentally submit the same request twice. You can use any string up to the maximum length.

" + "CreateBucketRequest$OutpostId": "

The ID of the Outposts where the bucket is being created.

This is required by Amazon S3 on Outposts buckets.

", + "CreateJobRequest$ClientRequestToken": "

An idempotency token to ensure that you don't accidentally submit the same request twice. You can use any string up to the maximum length.

", + "ListRegionalBucketsRequest$OutpostId": "

The ID of the AWS Outposts.

This is required by Amazon S3 on Outposts buckets.

", + "RegionalBucket$OutpostId": "

The AWS Outposts ID of the regional bucket.

" + } + }, + "NoncurrentVersionExpiration": { + "base": "

The container of the noncurrent version expiration.

", + "refs": { + "LifecycleRule$NoncurrentVersionExpiration": "

The noncurrent version expiration of the lifecycle rule.

This is not supported by Amazon S3 on Outposts buckets.

" + } + }, + "NoncurrentVersionTransition": { + "base": "

The container for the noncurrent version transition.

", + "refs": { + "NoncurrentVersionTransitionList$member": null + } + }, + "NoncurrentVersionTransitionList": { + "base": null, + "refs": { + "LifecycleRule$NoncurrentVersionTransitions": "

Specifies the transition rule for the lifecycle rule that describes when noncurrent objects transition to a specific storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to a specific storage class at a set period in the object's lifetime.

This is not supported by Amazon S3 on Outposts buckets.

" } }, "NotFoundException": { @@ -574,6 +877,12 @@ "refs": { } }, + "ObjectLockEnabledForBucket": { + "base": null, + "refs": { + "CreateBucketRequest$ObjectLockEnabledForBucket": "

Specifies whether you want S3 Object Lock to be enabled for the new bucket.

This is not supported by Amazon S3 on Outposts buckets.

" + } + }, "OperationName": { "base": null, "refs": { @@ -584,7 +893,9 @@ "base": null, "refs": { "GetAccessPointPolicyResult$Policy": "

The access point policy associated with the specified access point.

", - "PutAccessPointPolicyRequest$Policy": "

The policy that you want to apply to the specified access point. For more information about access point policies, see Managing Data Access with Amazon S3 Access Points in the Amazon Simple Storage Service Developer Guide.

" + "GetBucketPolicyResult$Policy": "

The policy of the Outposts bucket.

", + "PutAccessPointPolicyRequest$Policy": "

The policy that you want to apply to the specified access point. For more information about access point policies, see Managing Data Access with Amazon S3 Access Points in the Amazon Simple Storage Service Developer Guide.

", + "PutBucketPolicyRequest$Policy": "

The bucket policy as a JSON document.

" } }, "PolicyStatus": { @@ -593,13 +904,27 @@ "GetAccessPointPolicyStatusResult$PolicyStatus": "

Indicates the current policy status of the specified access point.

" } }, + "Prefix": { + "base": null, + "refs": { + "LifecycleRuleAndOperator$Prefix": "

Prefix identifying one or more objects to which the rule applies.

", + "LifecycleRuleFilter$Prefix": "

Prefix identifying one or more objects to which the rule applies.

" + } + }, "PublicAccessBlockConfiguration": { - "base": "

The PublicAccessBlock configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. For more information about when Amazon S3 considers a bucket or object public, see The Meaning of \"Public\" in the Amazon Simple Storage Service Developer Guide.

", + "base": "

The PublicAccessBlock configuration that you want to apply to this Amazon S3 bucket. You can enable the configuration options in any combination. For more information about when Amazon S3 considers a bucket or object public, see The Meaning of \"Public\" in the Amazon Simple Storage Service Developer Guide.

This is not supported for Amazon S3 on Outposts.

", "refs": { "CreateAccessPointRequest$PublicAccessBlockConfiguration": null, "GetAccessPointResult$PublicAccessBlockConfiguration": null, - "GetPublicAccessBlockOutput$PublicAccessBlockConfiguration": "

The PublicAccessBlock configuration currently in effect for this Amazon Web Services account.

", - "PutPublicAccessBlockRequest$PublicAccessBlockConfiguration": "

The PublicAccessBlock configuration that you want to apply to the specified Amazon Web Services account.

" + "GetPublicAccessBlockOutput$PublicAccessBlockConfiguration": "

The PublicAccessBlock configuration currently in effect for this AWS account.

", + "PutPublicAccessBlockRequest$PublicAccessBlockConfiguration": "

The PublicAccessBlock configuration that you want to apply to the specified AWS account.

" + } + }, + "PublicAccessBlockEnabled": { + "base": null, + "refs": { + "GetBucketResult$PublicAccessBlockEnabled": "

", + "RegionalBucket$PublicAccessBlockEnabled": "

" } }, "PutAccessPointPolicyRequest": { @@ -607,6 +932,21 @@ "refs": { } }, + "PutBucketLifecycleConfigurationRequest": { + "base": null, + "refs": { + } + }, + "PutBucketPolicyRequest": { + "base": null, + "refs": { + } + }, + "PutBucketTaggingRequest": { + "base": null, + "refs": { + } + }, "PutJobTaggingRequest": { "base": null, "refs": { @@ -622,10 +962,22 @@ "refs": { } }, + "RegionalBucket": { + "base": "

The container for the regional bucket.

", + "refs": { + "RegionalBucketList$member": null + } + }, + "RegionalBucketList": { + "base": null, + "refs": { + "ListRegionalBucketsResult$RegionalBucketList": "

" + } + }, "ReportPrefixString": { "base": null, "refs": { - "JobReport$Prefix": "

An optional prefix to describe where in the specified bucket the job-completion report will be stored. Amazon S3 will store the job-completion report at <prefix>/job-<job-id>/report.json.

" + "JobReport$Prefix": "

An optional prefix to describe where in the specified bucket the job-completion report will be stored. Amazon S3 stores the job-completion report at <prefix>/job-<job-id>/report.json.

" } }, "RequestedJobStatus": { @@ -646,6 +998,13 @@ "S3SetObjectAclOperation$AccessControlPolicy": "

" } }, + "S3AccessPointArn": { + "base": null, + "refs": { + "AccessPoint$AccessPointArn": "

The ARN for the access point.

", + "CreateAccessPointResult$AccessPointArn": "

The ARN of the access point.

" + } + }, "S3BucketArnString": { "base": null, "refs": { @@ -667,9 +1026,9 @@ } }, "S3CopyObjectOperation": { - "base": "

Contains the configuration parameters for a PUT Copy object operation. Amazon S3 Batch Operations passes each value through to the underlying PUT Copy object API. For more information about the parameters for this operation, see PUT Object - Copy.

", + "base": "

Contains the configuration parameters for a PUT Copy object operation. S3 Batch Operations passes each value through to the underlying PUT Copy object API. For more information about the parameters for this operation, see PUT Object - Copy.

", "refs": { - "JobOperation$S3PutObjectCopy": "

Directs the specified job to execute a PUT Copy object call on each object in the manifest.

" + "JobOperation$S3PutObjectCopy": "

Directs the specified job to run a PUT Copy object call on each object in the manifest.

" } }, "S3ExpirationInDays": { @@ -710,9 +1069,9 @@ } }, "S3InitiateRestoreObjectOperation": { - "base": "

Contains the configuration parameters for an Initiate Glacier Restore job. Amazon S3 Batch Operations passes each value through to the underlying POST Object restore API. For more information about the parameters for this operation, see Restoring Archives.

", + "base": "

Contains the configuration parameters for an Initiate Glacier Restore job. S3 Batch Operations passes each value through to the underlying POST Object restore API. For more information about the parameters for this operation, see RestoreObject.

", "refs": { - "JobOperation$S3InitiateRestoreObject": "

Directs the specified job to execute an Initiate Glacier Restore call on each object in the manifest.

" + "JobOperation$S3InitiateRestoreObject": "

Directs the specified job to run an Initiate Glacier Restore call on each object in the manifest.

" } }, "S3KeyArnString": { @@ -728,28 +1087,28 @@ } }, "S3ObjectLockLegalHold": { - "base": "

", + "base": "

Whether S3 Object Lock legal hold will be applied to objects in an S3 Batch Operations job.

", "refs": { - "S3SetObjectLegalHoldOperation$LegalHold": "

The Legal Hold contains the status to be applied to all objects in the Batch Operations job.

" + "S3SetObjectLegalHoldOperation$LegalHold": "

Contains the Object Lock legal hold status to be applied to all objects in the Batch Operations job.

" } }, "S3ObjectLockLegalHoldStatus": { "base": null, "refs": { - "S3CopyObjectOperation$ObjectLockLegalHoldStatus": "

The Legal Hold status to be applied to all objects in the Batch Operations job.

", - "S3ObjectLockLegalHold$Status": "

The Legal Hold status to be applied to all objects in the Batch Operations job.

" + "S3CopyObjectOperation$ObjectLockLegalHoldStatus": "

The legal hold status to be applied to all objects in the Batch Operations job.

", + "S3ObjectLockLegalHold$Status": "

The Object Lock legal hold status to be applied to all objects in the Batch Operations job.

" } }, "S3ObjectLockMode": { "base": null, "refs": { - "S3CopyObjectOperation$ObjectLockMode": "

The Retention mode to be applied to all objects in the Batch Operations job.

" + "S3CopyObjectOperation$ObjectLockMode": "

The retention mode to be applied to all objects in the Batch Operations job.

" } }, "S3ObjectLockRetentionMode": { "base": null, "refs": { - "S3Retention$Mode": "

The Retention mode to be applied to all objects in the Batch Operations job.

" + "S3Retention$Mode": "

The Object Lock retention mode to be applied to all objects in the Batch Operations job.

" } }, "S3ObjectMetadata": { @@ -776,10 +1135,17 @@ "S3Grant$Permission": "

" } }, + "S3RegionalBucketArn": { + "base": null, + "refs": { + "CreateBucketResult$BucketArn": "

The Amazon Resource Name (ARN) of the bucket.

For Amazon S3 on Outposts specify the ARN of the bucket accessed in the format arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/bucket/<my-bucket-name>. For example, to access the bucket reports through outpost my-outpost owned by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. The value must be URL encoded.

", + "RegionalBucket$BucketArn": "

The Amazon Resource Name (ARN) for the regional bucket.

" + } + }, "S3Retention": { - "base": "

", + "base": "

Contains the S3 Object Lock retention mode to be applied to all objects in the S3 Batch Operations job. If you don't provide Mode and RetainUntilDate data types in your operation, you will remove the retention from your objects. For more information, see Using S3 Object Lock retention with S3 Batch Operations in the Amazon Simple Storage Service Developer Guide.

", "refs": { - "S3SetObjectRetentionOperation$Retention": "

Amazon S3 object lock Retention contains the retention mode to be applied to all objects in the Batch Operations job.

" + "S3SetObjectRetentionOperation$Retention": "

Contains the Object Lock retention mode to be applied to all objects in the Batch Operations job. For more information, see Using S3 Object Lock retention with S3 Batch Operations in the Amazon Simple Storage Service Developer Guide.

" } }, "S3SSEAlgorithm": { @@ -789,27 +1155,27 @@ } }, "S3SetObjectAclOperation": { - "base": "

Contains the configuration parameters for a Set Object ACL operation. Amazon S3 Batch Operations passes each value through to the underlying PUT Object acl API. For more information about the parameters for this operation, see PUT Object acl.

", + "base": "

Contains the configuration parameters for a Set Object ACL operation. S3 Batch Operations passes each value through to the underlying PUT Object acl API. For more information about the parameters for this operation, see PUT Object acl.

", "refs": { - "JobOperation$S3PutObjectAcl": "

Directs the specified job to execute a PUT Object acl call on each object in the manifest.

" + "JobOperation$S3PutObjectAcl": "

Directs the specified job to run a PUT Object acl call on each object in the manifest.

" } }, "S3SetObjectLegalHoldOperation": { - "base": "

Contains the configuration parameters for a Set Object Legal Hold operation. Amazon S3 Batch Operations passes each value through to the underlying PUT Object Legal Hold API. For more information about the parameters for this operation, see PUT Object Legal Hold.

", + "base": "

Contains the configuration for an S3 Object Lock legal hold operation that an S3 Batch Operations job passes each object through to the underlying PutObjectLegalHold API. For more information, see Using S3 Object Lock legal hold with S3 Batch Operations in the Amazon Simple Storage Service Developer Guide.

", "refs": { "JobOperation$S3PutObjectLegalHold": null } }, "S3SetObjectRetentionOperation": { - "base": "

Contains the configuration parameters for a Set Object Retention operation. Amazon S3 Batch Operations passes each value through to the underlying PUT Object Retention API. For more information about the parameters for this operation, see PUT Object Retention.

", + "base": "

Contains the configuration parameters for the Object Lock retention action for an S3 Batch Operations job. Batch Operations passes each value through to the underlying PutObjectRetention API. For more information, see Using S3 Object Lock retention with S3 Batch Operations in the Amazon Simple Storage Service Developer Guide.

", "refs": { "JobOperation$S3PutObjectRetention": null } }, "S3SetObjectTaggingOperation": { - "base": "

Contains the configuration parameters for a Set Object Tagging operation. Amazon S3 Batch Operations passes each value through to the underlying PUT Object tagging API. For more information about the parameters for this operation, see PUT Object tagging.

", + "base": "

Contains the configuration parameters for a Set Object Tagging operation. S3 Batch Operations passes each value through to the underlying PUT Object tagging API. For more information about the parameters for this operation, see PUT Object tagging.

", "refs": { - "JobOperation$S3PutObjectTagging": "

Directs the specified job to execute a PUT Object tagging call on each object in the manifest.

" + "JobOperation$S3PutObjectTagging": "

Directs the specified job to run a PUT Object tagging call on each object in the manifest.

" } }, "S3StorageClass": { @@ -821,17 +1187,21 @@ "S3Tag": { "base": "

", "refs": { + "LifecycleRuleFilter$Tag": null, "S3TagSet$member": null } }, "S3TagSet": { "base": null, "refs": { - "CreateJobRequest$Tags": "

A set of tags to associate with the Amazon S3 Batch Operations job. This is an optional parameter.

", - "GetJobTaggingResult$Tags": "

The set of tags associated with the Amazon S3 Batch Operations job.

", - "PutJobTaggingRequest$Tags": "

The set of tags to associate with the Amazon S3 Batch Operations job.

", + "CreateJobRequest$Tags": "

A set of tags to associate with the S3 Batch Operations job. This is an optional parameter.

", + "GetBucketTaggingResult$TagSet": "

The tags set of the Outposts bucket.

", + "GetJobTaggingResult$Tags": "

The set of tags associated with the S3 Batch Operations job.

", + "LifecycleRuleAndOperator$Tags": "

All of these tags must exist in the object's tag set in order for the rule to apply.

", + "PutJobTaggingRequest$Tags": "

The set of tags to associate with the S3 Batch Operations job.

", "S3CopyObjectOperation$NewObjectTagging": "

", - "S3SetObjectTaggingOperation$TagSet": "

" + "S3SetObjectTaggingOperation$TagSet": "

", + "Tagging$TagSet": "

A collection for a set of tags.

" } }, "S3UserMetadata": { @@ -843,10 +1213,10 @@ "Setting": { "base": null, "refs": { - "PublicAccessBlockConfiguration$BlockPublicAcls": "

Specifies whether Amazon S3 should block public access control lists (ACLs) for buckets in this account. Setting this element to TRUE causes the following behavior:

  • PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public.

  • PUT Object calls fail if the request includes a public ACL.

  • PUT Bucket calls fail if the request includes a public ACL.

Enabling this setting doesn't affect existing policies or ACLs.

", - "PublicAccessBlockConfiguration$IgnorePublicAcls": "

Specifies whether Amazon S3 should ignore public ACLs for buckets in this account. Setting this element to TRUE causes Amazon S3 to ignore all public ACLs on buckets in this account and any objects that they contain.

Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set.

", - "PublicAccessBlockConfiguration$BlockPublicPolicy": "

Specifies whether Amazon S3 should block public bucket policies for buckets in this account. Setting this element to TRUE causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access.

Enabling this setting doesn't affect existing bucket policies.

", - "PublicAccessBlockConfiguration$RestrictPublicBuckets": "

Specifies whether Amazon S3 should restrict public bucket policies for buckets in this account. Setting this element to TRUE restricts access to buckets with public policies to only AWS services and authorized users within this account.

Enabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked.

" + "PublicAccessBlockConfiguration$BlockPublicAcls": "

Specifies whether Amazon S3 should block public access control lists (ACLs) for buckets in this account. Setting this element to TRUE causes the following behavior:

  • PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public.

  • PUT Object calls fail if the request includes a public ACL.

  • PUT Bucket calls fail if the request includes a public ACL.

Enabling this setting doesn't affect existing policies or ACLs.

This is not supported for Amazon S3 on Outposts.

", + "PublicAccessBlockConfiguration$IgnorePublicAcls": "

Specifies whether Amazon S3 should ignore public ACLs for buckets in this account. Setting this element to TRUE causes Amazon S3 to ignore all public ACLs on buckets in this account and any objects that they contain.

Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set.

This is not supported for Amazon S3 on Outposts.

", + "PublicAccessBlockConfiguration$BlockPublicPolicy": "

Specifies whether Amazon S3 should block public bucket policies for buckets in this account. Setting this element to TRUE causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access.

Enabling this setting doesn't affect existing bucket policies.

This is not supported for Amazon S3 on Outposts.

", + "PublicAccessBlockConfiguration$RestrictPublicBuckets": "

Specifies whether Amazon S3 should restrict public bucket policies for buckets in this account. Setting this element to TRUE restricts access to buckets with public policies to only AWS services and authorized users within this account.

Enabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked.

This is not supported for Amazon S3 on Outposts.

" } }, "StringForNextToken": { @@ -880,14 +1250,20 @@ "S3Tag$Value": "

" } }, + "Tagging": { + "base": "

", + "refs": { + "PutBucketTaggingRequest$Tagging": "

" + } + }, "TimeStamp": { "base": null, "refs": { "S3CopyObjectOperation$ModifiedSinceConstraint": "

", "S3CopyObjectOperation$UnModifiedSinceConstraint": "

", - "S3CopyObjectOperation$ObjectLockRetainUntilDate": "

The date when the applied Object Retention configuration will expire on all objects in the Batch Operations job.

", + "S3CopyObjectOperation$ObjectLockRetainUntilDate": "

The date when the applied object retention configuration expires on all objects in the Batch Operations job.

", "S3ObjectMetadata$HttpExpiresDate": "

", - "S3Retention$RetainUntilDate": "

The date when the applied Object Retention will expire on all objects in the Batch Operations job.

" + "S3Retention$RetainUntilDate": "

The date when the applied Object Lock retention will expire on all objects set by the Batch Operations job.

" } }, "TooManyRequestsException": { @@ -896,8 +1272,27 @@ } }, "TooManyTagsException": { - "base": "

", + "base": "

Amazon S3 throws this exception if you have too many tags in your tag set.

", + "refs": { + } + }, + "Transition": { + "base": "

Specifies when an object transitions to a specified storage class. For more information about Amazon S3 Lifecycle configuration rules, see Transitioning Objects Using Amazon S3 Lifecycle in the Amazon Simple Storage Service Developer Guide.

", + "refs": { + "TransitionList$member": null + } + }, + "TransitionList": { + "base": null, + "refs": { + "LifecycleRule$Transitions": "

Specifies when an Amazon S3 object transitions to a specified storage class.

This is not supported by Amazon S3 on Outposts buckets.

" + } + }, + "TransitionStorageClass": { + "base": null, "refs": { + "NoncurrentVersionTransition$StorageClass": "

The class of storage used to store the object.

", + "Transition$StorageClass": "

The storage class to which you want the object to transition.

" } }, "UpdateJobPriorityRequest": { @@ -924,7 +1319,7 @@ "base": "

The virtual private cloud (VPC) configuration for an access point.

", "refs": { "AccessPoint$VpcConfiguration": "

The virtual private cloud (VPC) configuration for this access point, if one exists.

", - "CreateAccessPointRequest$VpcConfiguration": "

If you include this field, Amazon S3 restricts access to this access point to requests from the specified virtual private cloud (VPC).

", + "CreateAccessPointRequest$VpcConfiguration": "

If you include this field, Amazon S3 restricts access to this access point to requests from the specified virtual private cloud (VPC).

This is required for creating an access point for Amazon S3 on Outposts buckets.

", "GetAccessPointResult$VpcConfiguration": "

Contains the virtual private cloud (VPC) configuration for the specified access point.

" } }, diff --git a/models/apis/s3control/2018-08-20/paginators-1.json b/models/apis/s3control/2018-08-20/paginators-1.json index b725a739c2b..d4d35a1a395 100755 --- a/models/apis/s3control/2018-08-20/paginators-1.json +++ b/models/apis/s3control/2018-08-20/paginators-1.json @@ -9,6 +9,11 @@ "input_token": "NextToken", "output_token": "NextToken", "limit_key": "MaxResults" + }, + "ListRegionalBuckets": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults" } } } diff --git a/models/apis/s3outposts/2017-07-25/api-2.json b/models/apis/s3outposts/2017-07-25/api-2.json new file mode 100644 index 00000000000..d85e100851c --- /dev/null +++ b/models/apis/s3outposts/2017-07-25/api-2.json @@ -0,0 +1,250 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2017-07-25", + "endpointPrefix":"s3-outposts", + "jsonVersion":"1.1", + "protocol":"rest-json", + "serviceAbbreviation":"Amazon S3 Outposts", + "serviceFullName":"Amazon S3 on Outposts", + "serviceId":"S3Outposts", + "signatureVersion":"v4", + "signingName":"s3-outposts", + "uid":"s3outposts-2017-07-25" + }, + "operations":{ + "CreateEndpoint":{ + "name":"CreateEndpoint", + "http":{ + "method":"POST", + "requestUri":"/S3Outposts/CreateEndpoint" + }, + "input":{"shape":"CreateEndpointRequest"}, + "output":{"shape":"CreateEndpointResult"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ValidationException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ConflictException"} + ] + }, + "DeleteEndpoint":{ + "name":"DeleteEndpoint", + "http":{ + "method":"DELETE", + "requestUri":"/S3Outposts/DeleteEndpoint" + }, + "input":{"shape":"DeleteEndpointRequest"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ValidationException"} + ] + }, + "ListEndpoints":{ + "name":"ListEndpoints", + "http":{ + "method":"GET", + "requestUri":"/S3Outposts/ListEndpoints" + }, + "input":{"shape":"ListEndpointsRequest"}, + "output":{"shape":"ListEndpointsResult"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ValidationException"} + ] + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":403}, + "exception":true + }, + "CidrBlock":{ + "type":"string", + "max":20, + "min":1 + }, + "ConflictException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, + "CreateEndpointRequest":{ + "type":"structure", + "required":[ + "OutpostId", + "SubnetId", + "SecurityGroupId" + ], + "members":{ + "OutpostId":{"shape":"OutpostId"}, + "SubnetId":{"shape":"SubnetId"}, + "SecurityGroupId":{"shape":"SecurityGroupId"} + } + }, + "CreateEndpointResult":{ + "type":"structure", + "members":{ + "EndpointArn":{"shape":"EndpointArn"} + } + }, + "CreationTime":{"type":"timestamp"}, + "DeleteEndpointRequest":{ + "type":"structure", + "required":[ + "EndpointId", + "OutpostId" + ], + "members":{ + "EndpointId":{ + "shape":"EndpointId", + "location":"querystring", + "locationName":"endpointId" + }, + "OutpostId":{ + "shape":"OutpostId", + "location":"querystring", + "locationName":"outpostId" + } + } + }, + "Endpoint":{ + "type":"structure", + "members":{ + "EndpointArn":{"shape":"EndpointArn"}, + "OutpostsId":{"shape":"OutpostId"}, + "CidrBlock":{"shape":"CidrBlock"}, + "Status":{"shape":"EndpointStatus"}, + "CreationTime":{"shape":"CreationTime"}, + "NetworkInterfaces":{"shape":"NetworkInterfaces"} + } + }, + "EndpointArn":{ + "type":"string", + "max":500, + "min":5, + "pattern":"^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):s3-outposts:[a-z\\-0-9]*:[0-9]{12}:outpost/(op-[a-f0-9]{17}|ec2)/endpoint/[a-zA-Z0-9]{19}$" + }, + "EndpointId":{ + "type":"string", + "max":500, + "min":5, + "pattern":"^[a-zA-Z0-9]{19}$" + }, + "EndpointStatus":{ + "type":"string", + "enum":[ + "PENDING", + "AVAILABLE" + ] + }, + "Endpoints":{ + "type":"list", + "member":{"shape":"Endpoint"} + }, + "ErrorMessage":{"type":"string"}, + "InternalServerException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "ListEndpointsRequest":{ + "type":"structure", + "members":{ + "NextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + }, + "MaxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + } + } + }, + "ListEndpointsResult":{ + "type":"structure", + "members":{ + "Endpoints":{"shape":"Endpoints"}, + "NextToken":{"shape":"NextToken"} + } + }, + "MaxResults":{ + "type":"integer", + "max":100, + "min":0 + }, + "NetworkInterface":{ + "type":"structure", + "members":{ + "NetworkInterfaceId":{"shape":"NetworkInterfaceId"} + } + }, + "NetworkInterfaceId":{ + "type":"string", + "max":100, + "min":1 + }, + "NetworkInterfaces":{ + "type":"list", + "member":{"shape":"NetworkInterface"} + }, + "NextToken":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"^[A-Za-z0-9\\+\\:\\/\\=\\?\\#-_]+$" + }, + "OutpostId":{ + "type":"string", + "max":100, + "min":1, + "pattern":"^(op-[a-f0-9]{17}|\\d{12}|ec2)$" + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":404}, + "exception":true + }, + "SecurityGroupId":{ + "type":"string", + "max":100, + "min":1, + "pattern":"^sg-([0-9a-f]{8}|[0-9a-f]{17})$" + }, + "SubnetId":{ + "type":"string", + "max":100, + "min":1, + "pattern":"^subnet-([0-9a-f]{8}|[0-9a-f]{17})$" + }, + "ValidationException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "error":{"httpStatusCode":400}, + "exception":true + } + } +} diff --git a/models/apis/s3outposts/2017-07-25/docs-2.json b/models/apis/s3outposts/2017-07-25/docs-2.json new file mode 100644 index 00000000000..c5d69ef23ce --- /dev/null +++ b/models/apis/s3outposts/2017-07-25/docs-2.json @@ -0,0 +1,165 @@ +{ + "version": "2.0", + "service": "

Amazon S3 on Outposts provides access to S3 on Outposts operations.

", + "operations": { + "CreateEndpoint": "

S3 on Outposts access points simplify managing data access at scale for shared datasets in Amazon S3 on Outposts. S3 on Outposts uses endpoints to connect to Outposts buckets so that you can perform actions within your virtual private cloud (VPC).

This action creates an endpoint and associates it with the specified Outpost.

Related actions include:

", + "DeleteEndpoint": "

S3 on Outposts access points simplify managing data access at scale for shared datasets in Amazon S3 on Outposts. S3 on Outposts uses endpoints to connect to Outposts buckets so that you can perform actions within your virtual private cloud (VPC).

This action deletes an endpoint.

Related actions include:

", + "ListEndpoints": "

S3 on Outposts access points simplify managing data access at scale for shared datasets in Amazon S3 on Outposts. S3 on Outposts uses endpoints to connect to Outposts buckets so that you can perform actions within your virtual private cloud (VPC).

This action lists endpoints associated with the Outpost.

Related actions include:

" + }, + "shapes": { + "AccessDeniedException": { + "base": "

Access was denied for this action.

", + "refs": { + } + }, + "CidrBlock": { + "base": null, + "refs": { + "Endpoint$CidrBlock": "

The VPC CIDR committed by this endpoint.

" + } + }, + "ConflictException": { + "base": "

There was a conflict with this action, and it could not be completed.

", + "refs": { + } + }, + "CreateEndpointRequest": { + "base": null, + "refs": { + } + }, + "CreateEndpointResult": { + "base": null, + "refs": { + } + }, + "CreationTime": { + "base": null, + "refs": { + "Endpoint$CreationTime": "

The time the endpoint was created.

" + } + }, + "DeleteEndpointRequest": { + "base": null, + "refs": { + } + }, + "Endpoint": { + "base": "

S3 on Outposts access points simplify managing data access at scale for shared datasets in Amazon S3 on Outposts. S3 on Outposts uses endpoints to connect to Outposts buckets so that you can perform actions within your virtual private cloud (VPC).

", + "refs": { + "Endpoints$member": null + } + }, + "EndpointArn": { + "base": null, + "refs": { + "CreateEndpointResult$EndpointArn": "

The Amazon Resource Name (ARN) of the endpoint.

", + "Endpoint$EndpointArn": "

The Amazon Resource Name (ARN) of the endpoint.

" + } + }, + "EndpointId": { + "base": null, + "refs": { + "DeleteEndpointRequest$EndpointId": "

The ID of the end point.

" + } + }, + "EndpointStatus": { + "base": null, + "refs": { + "Endpoint$Status": "

The status of the endpoint.

" + } + }, + "Endpoints": { + "base": null, + "refs": { + "ListEndpointsResult$Endpoints": "

Returns an array of endpoints associated with AWS Outpost.

" + } + }, + "ErrorMessage": { + "base": null, + "refs": { + "AccessDeniedException$Message": null, + "ConflictException$Message": null, + "InternalServerException$Message": null, + "ResourceNotFoundException$Message": null, + "ValidationException$Message": null + } + }, + "InternalServerException": { + "base": "

There was an exception with the internal server.

", + "refs": { + } + }, + "ListEndpointsRequest": { + "base": null, + "refs": { + } + }, + "ListEndpointsResult": { + "base": null, + "refs": { + } + }, + "MaxResults": { + "base": null, + "refs": { + "ListEndpointsRequest$MaxResults": "

The max number of endpoints that can be returned on the request.

" + } + }, + "NetworkInterface": { + "base": "

The container for the network interface.

", + "refs": { + "NetworkInterfaces$member": null + } + }, + "NetworkInterfaceId": { + "base": null, + "refs": { + "NetworkInterface$NetworkInterfaceId": "

The ID for the network interface.

" + } + }, + "NetworkInterfaces": { + "base": null, + "refs": { + "Endpoint$NetworkInterfaces": "

The network interface of the endpoint.

" + } + }, + "NextToken": { + "base": null, + "refs": { + "ListEndpointsRequest$NextToken": "

The next endpoint requested in the list.

", + "ListEndpointsResult$NextToken": "

The next endpoint returned in the list.

" + } + }, + "OutpostId": { + "base": null, + "refs": { + "CreateEndpointRequest$OutpostId": "

The ID of the AWS Outpost.

", + "DeleteEndpointRequest$OutpostId": "

The ID of the AWS Outpost.

", + "Endpoint$OutpostsId": "

The ID of the AWS Outpost.

" + } + }, + "ResourceNotFoundException": { + "base": "

The requested resource was not found.

", + "refs": { + } + }, + "SecurityGroupId": { + "base": null, + "refs": { + "CreateEndpointRequest$SecurityGroupId": "

The ID of the security group to use with the endpoint.

" + } + }, + "SubnetId": { + "base": null, + "refs": { + "CreateEndpointRequest$SubnetId": "

The ID of the subnet in the selected VPC.

" + } + }, + "ValidationException": { + "base": "

There was an exception validating this data.

", + "refs": { + } + } + } +} diff --git a/models/apis/s3outposts/2017-07-25/examples-1.json b/models/apis/s3outposts/2017-07-25/examples-1.json new file mode 100644 index 00000000000..0ea7e3b0bbe --- /dev/null +++ b/models/apis/s3outposts/2017-07-25/examples-1.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/models/apis/s3outposts/2017-07-25/paginators-1.json b/models/apis/s3outposts/2017-07-25/paginators-1.json new file mode 100644 index 00000000000..ad678fe468b --- /dev/null +++ b/models/apis/s3outposts/2017-07-25/paginators-1.json @@ -0,0 +1,10 @@ +{ + "pagination": { + "ListEndpoints": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "Endpoints" + } + } +} \ No newline at end of file diff --git a/models/apis/securityhub/2018-10-26/api-2.json b/models/apis/securityhub/2018-10-26/api-2.json index 657ca59040f..9c8cd499be3 100644 --- a/models/apis/securityhub/2018-10-26/api-2.json +++ b/models/apis/securityhub/2018-10-26/api-2.json @@ -749,6 +749,126 @@ "type":"list", "member":{"shape":"AvailabilityZone"} }, + "AwsApiGatewayAccessLogSettings":{ + "type":"structure", + "members":{ + "Format":{"shape":"NonEmptyString"}, + "DestinationArn":{"shape":"NonEmptyString"} + } + }, + "AwsApiGatewayCanarySettings":{ + "type":"structure", + "members":{ + "PercentTraffic":{"shape":"Double"}, + "DeploymentId":{"shape":"NonEmptyString"}, + "StageVariableOverrides":{"shape":"FieldMap"}, + "UseStageCache":{"shape":"Boolean"} + } + }, + "AwsApiGatewayEndpointConfiguration":{ + "type":"structure", + "members":{ + "Types":{"shape":"NonEmptyStringList"} + } + }, + "AwsApiGatewayMethodSettings":{ + "type":"structure", + "members":{ + "MetricsEnabled":{"shape":"Boolean"}, + "LoggingLevel":{"shape":"NonEmptyString"}, + "DataTraceEnabled":{"shape":"Boolean"}, + "ThrottlingBurstLimit":{"shape":"Integer"}, + "ThrottlingRateLimit":{"shape":"Double"}, + "CachingEnabled":{"shape":"Boolean"}, + "CacheTtlInSeconds":{"shape":"Integer"}, + "CacheDataEncrypted":{"shape":"Boolean"}, + "RequireAuthorizationForCacheControl":{"shape":"Boolean"}, + "UnauthorizedCacheControlHeaderStrategy":{"shape":"NonEmptyString"}, + "HttpMethod":{"shape":"NonEmptyString"}, + "ResourcePath":{"shape":"NonEmptyString"} + } + }, + "AwsApiGatewayMethodSettingsList":{ + "type":"list", + "member":{"shape":"AwsApiGatewayMethodSettings"} + }, + "AwsApiGatewayRestApiDetails":{ + "type":"structure", + "members":{ + "Id":{"shape":"NonEmptyString"}, + "Name":{"shape":"NonEmptyString"}, + "Description":{"shape":"NonEmptyString"}, + "CreatedDate":{"shape":"NonEmptyString"}, + "Version":{"shape":"NonEmptyString"}, + "BinaryMediaTypes":{"shape":"NonEmptyStringList"}, + "MinimumCompressionSize":{"shape":"Integer"}, + "ApiKeySource":{"shape":"NonEmptyString"}, + "EndpointConfiguration":{"shape":"AwsApiGatewayEndpointConfiguration"} + } + }, + "AwsApiGatewayStageDetails":{ + "type":"structure", + "members":{ + "DeploymentId":{"shape":"NonEmptyString"}, + "ClientCertificateId":{"shape":"NonEmptyString"}, + "StageName":{"shape":"NonEmptyString"}, + "Description":{"shape":"NonEmptyString"}, + "CacheClusterEnabled":{"shape":"Boolean"}, + "CacheClusterSize":{"shape":"NonEmptyString"}, + "CacheClusterStatus":{"shape":"NonEmptyString"}, + "MethodSettings":{"shape":"AwsApiGatewayMethodSettingsList"}, + "Variables":{"shape":"FieldMap"}, + "DocumentationVersion":{"shape":"NonEmptyString"}, + "AccessLogSettings":{"shape":"AwsApiGatewayAccessLogSettings"}, + "CanarySettings":{"shape":"AwsApiGatewayCanarySettings"}, + "TracingEnabled":{"shape":"Boolean"}, + "CreatedDate":{"shape":"NonEmptyString"}, + "LastUpdatedDate":{"shape":"NonEmptyString"}, + "WebAclArn":{"shape":"NonEmptyString"} + } + }, + "AwsApiGatewayV2ApiDetails":{ + "type":"structure", + "members":{ + "ApiEndpoint":{"shape":"NonEmptyString"}, + "ApiId":{"shape":"NonEmptyString"}, + "ApiKeySelectionExpression":{"shape":"NonEmptyString"}, + "CreatedDate":{"shape":"NonEmptyString"}, + "Description":{"shape":"NonEmptyString"}, + "Version":{"shape":"NonEmptyString"}, + "Name":{"shape":"NonEmptyString"}, + "ProtocolType":{"shape":"NonEmptyString"}, + "RouteSelectionExpression":{"shape":"NonEmptyString"}, + "CorsConfiguration":{"shape":"AwsCorsConfiguration"} + } + }, + "AwsApiGatewayV2RouteSettings":{ + "type":"structure", + "members":{ + "DetailedMetricsEnabled":{"shape":"Boolean"}, + "LoggingLevel":{"shape":"NonEmptyString"}, + "DataTraceEnabled":{"shape":"Boolean"}, + "ThrottlingBurstLimit":{"shape":"Integer"}, + "ThrottlingRateLimit":{"shape":"Double"} + } + }, + "AwsApiGatewayV2StageDetails":{ + "type":"structure", + "members":{ + "CreatedDate":{"shape":"NonEmptyString"}, + "Description":{"shape":"NonEmptyString"}, + "DefaultRouteSettings":{"shape":"AwsApiGatewayV2RouteSettings"}, + "DeploymentId":{"shape":"NonEmptyString"}, + "LastUpdatedDate":{"shape":"NonEmptyString"}, + "RouteSettings":{"shape":"AwsApiGatewayV2RouteSettings"}, + "StageName":{"shape":"NonEmptyString"}, + "StageVariables":{"shape":"FieldMap"}, + "AccessLogSettings":{"shape":"AwsApiGatewayAccessLogSettings"}, + "AutoDeploy":{"shape":"Boolean"}, + "LastDeploymentStatusMessage":{"shape":"NonEmptyString"}, + "ApiGatewayManaged":{"shape":"Boolean"} + } + }, "AwsAutoScalingAutoScalingGroupDetails":{ "type":"structure", "members":{ @@ -759,14 +879,127 @@ "CreatedTime":{"shape":"NonEmptyString"} } }, + "AwsCertificateManagerCertificateDetails":{ + "type":"structure", + "members":{ + "CertificateAuthorityArn":{"shape":"NonEmptyString"}, + "CreatedAt":{"shape":"NonEmptyString"}, + "DomainName":{"shape":"NonEmptyString"}, + "DomainValidationOptions":{"shape":"AwsCertificateManagerCertificateDomainValidationOptions"}, + "ExtendedKeyUsages":{"shape":"AwsCertificateManagerCertificateExtendedKeyUsages"}, + "FailureReason":{"shape":"NonEmptyString"}, + "ImportedAt":{"shape":"NonEmptyString"}, + "InUseBy":{"shape":"StringList"}, + "IssuedAt":{"shape":"NonEmptyString"}, + "Issuer":{"shape":"NonEmptyString"}, + "KeyAlgorithm":{"shape":"NonEmptyString"}, + "KeyUsages":{"shape":"AwsCertificateManagerCertificateKeyUsages"}, + "NotAfter":{"shape":"NonEmptyString"}, + "NotBefore":{"shape":"NonEmptyString"}, + "Options":{"shape":"AwsCertificateManagerCertificateOptions"}, + "RenewalEligibility":{"shape":"NonEmptyString"}, + "RenewalSummary":{"shape":"AwsCertificateManagerCertificateRenewalSummary"}, + "Serial":{"shape":"NonEmptyString"}, + "SignatureAlgorithm":{"shape":"NonEmptyString"}, + "Status":{"shape":"NonEmptyString"}, + "Subject":{"shape":"NonEmptyString"}, + "SubjectAlternativeNames":{"shape":"StringList"}, + "Type":{"shape":"NonEmptyString"} + } + }, + "AwsCertificateManagerCertificateDomainValidationOption":{ + "type":"structure", + "members":{ + "DomainName":{"shape":"NonEmptyString"}, + "ResourceRecord":{"shape":"AwsCertificateManagerCertificateResourceRecord"}, + "ValidationDomain":{"shape":"NonEmptyString"}, + "ValidationEmails":{"shape":"StringList"}, + "ValidationMethod":{"shape":"NonEmptyString"}, + "ValidationStatus":{"shape":"NonEmptyString"} + } + }, + "AwsCertificateManagerCertificateDomainValidationOptions":{ + "type":"list", + "member":{"shape":"AwsCertificateManagerCertificateDomainValidationOption"} + }, + "AwsCertificateManagerCertificateExtendedKeyUsage":{ + "type":"structure", + "members":{ + "Name":{"shape":"NonEmptyString"}, + "OId":{"shape":"NonEmptyString"} + } + }, + "AwsCertificateManagerCertificateExtendedKeyUsages":{ + "type":"list", + "member":{"shape":"AwsCertificateManagerCertificateExtendedKeyUsage"} + }, + "AwsCertificateManagerCertificateKeyUsage":{ + "type":"structure", + "members":{ + "Name":{"shape":"NonEmptyString"} + } + }, + "AwsCertificateManagerCertificateKeyUsages":{ + "type":"list", + "member":{"shape":"AwsCertificateManagerCertificateKeyUsage"} + }, + "AwsCertificateManagerCertificateOptions":{ + "type":"structure", + "members":{ + "CertificateTransparencyLoggingPreference":{"shape":"NonEmptyString"} + } + }, + "AwsCertificateManagerCertificateRenewalSummary":{ + "type":"structure", + "members":{ + "DomainValidationOptions":{"shape":"AwsCertificateManagerCertificateDomainValidationOptions"}, + "RenewalStatus":{"shape":"NonEmptyString"}, + "RenewalStatusReason":{"shape":"NonEmptyString"}, + "UpdatedAt":{"shape":"NonEmptyString"} + } + }, + "AwsCertificateManagerCertificateResourceRecord":{ + "type":"structure", + "members":{ + "Name":{"shape":"NonEmptyString"}, + "Type":{"shape":"NonEmptyString"}, + "Value":{"shape":"NonEmptyString"} + } + }, + "AwsCloudFrontDistributionCacheBehavior":{ + "type":"structure", + "members":{ + "ViewerProtocolPolicy":{"shape":"NonEmptyString"} + } + }, + "AwsCloudFrontDistributionCacheBehaviors":{ + "type":"structure", + "members":{ + "Items":{"shape":"AwsCloudFrontDistributionCacheBehaviorsItemList"} + } + }, + "AwsCloudFrontDistributionCacheBehaviorsItemList":{ + "type":"list", + "member":{"shape":"AwsCloudFrontDistributionCacheBehavior"} + }, + "AwsCloudFrontDistributionDefaultCacheBehavior":{ + "type":"structure", + "members":{ + "ViewerProtocolPolicy":{"shape":"NonEmptyString"} + } + }, "AwsCloudFrontDistributionDetails":{ "type":"structure", "members":{ + "CacheBehaviors":{"shape":"AwsCloudFrontDistributionCacheBehaviors"}, + "DefaultCacheBehavior":{"shape":"AwsCloudFrontDistributionDefaultCacheBehavior"}, + "DefaultRootObject":{"shape":"NonEmptyString"}, "DomainName":{"shape":"NonEmptyString"}, "ETag":{"shape":"NonEmptyString"}, "LastModifiedTime":{"shape":"NonEmptyString"}, "Logging":{"shape":"AwsCloudFrontDistributionLogging"}, "Origins":{"shape":"AwsCloudFrontDistributionOrigins"}, + "OriginGroups":{"shape":"AwsCloudFrontDistributionOriginGroups"}, "Status":{"shape":"NonEmptyString"}, "WebAclId":{"shape":"NonEmptyString"} } @@ -780,24 +1013,84 @@ "Prefix":{"shape":"NonEmptyString"} } }, + "AwsCloudFrontDistributionOriginGroup":{ + "type":"structure", + "members":{ + "FailoverCriteria":{"shape":"AwsCloudFrontDistributionOriginGroupFailover"} + } + }, + "AwsCloudFrontDistributionOriginGroupFailover":{ + "type":"structure", + "members":{ + "StatusCodes":{"shape":"AwsCloudFrontDistributionOriginGroupFailoverStatusCodes"} + } + }, + "AwsCloudFrontDistributionOriginGroupFailoverStatusCodes":{ + "type":"structure", + "members":{ + "Items":{"shape":"AwsCloudFrontDistributionOriginGroupFailoverStatusCodesItemList"}, + "Quantity":{"shape":"Integer"} + } + }, + "AwsCloudFrontDistributionOriginGroupFailoverStatusCodesItemList":{ + "type":"list", + "member":{"shape":"Integer"} + }, + "AwsCloudFrontDistributionOriginGroups":{ + "type":"structure", + "members":{ + "Items":{"shape":"AwsCloudFrontDistributionOriginGroupsItemList"} + } + }, + "AwsCloudFrontDistributionOriginGroupsItemList":{ + "type":"list", + "member":{"shape":"AwsCloudFrontDistributionOriginGroup"} + }, "AwsCloudFrontDistributionOriginItem":{ "type":"structure", "members":{ "DomainName":{"shape":"NonEmptyString"}, "Id":{"shape":"NonEmptyString"}, - "OriginPath":{"shape":"NonEmptyString"} + "OriginPath":{"shape":"NonEmptyString"}, + "S3OriginConfig":{"shape":"AwsCloudFrontDistributionOriginS3OriginConfig"} } }, "AwsCloudFrontDistributionOriginItemList":{ "type":"list", "member":{"shape":"AwsCloudFrontDistributionOriginItem"} }, + "AwsCloudFrontDistributionOriginS3OriginConfig":{ + "type":"structure", + "members":{ + "OriginAccessIdentity":{"shape":"NonEmptyString"} + } + }, "AwsCloudFrontDistributionOrigins":{ "type":"structure", "members":{ "Items":{"shape":"AwsCloudFrontDistributionOriginItemList"} } }, + "AwsCloudTrailTrailDetails":{ + "type":"structure", + "members":{ + "CloudWatchLogsLogGroupArn":{"shape":"NonEmptyString"}, + "CloudWatchLogsRoleArn":{"shape":"NonEmptyString"}, + "HasCustomEventSelectors":{"shape":"Boolean"}, + "HomeRegion":{"shape":"NonEmptyString"}, + "IncludeGlobalServiceEvents":{"shape":"Boolean"}, + "IsMultiRegionTrail":{"shape":"Boolean"}, + "IsOrganizationTrail":{"shape":"Boolean"}, + "KmsKeyId":{"shape":"NonEmptyString"}, + "LogFileValidationEnabled":{"shape":"Boolean"}, + "Name":{"shape":"NonEmptyString"}, + "S3BucketName":{"shape":"NonEmptyString"}, + "S3KeyPrefix":{"shape":"NonEmptyString"}, + "SnsTopicArn":{"shape":"NonEmptyString"}, + "SnsTopicName":{"shape":"NonEmptyString"}, + "TrailArn":{"shape":"NonEmptyString"} + } + }, "AwsCodeBuildProjectDetails":{ "type":"structure", "members":{ @@ -842,6 +1135,17 @@ "SecurityGroupIds":{"shape":"NonEmptyStringList"} } }, + "AwsCorsConfiguration":{ + "type":"structure", + "members":{ + "AllowOrigins":{"shape":"NonEmptyStringList"}, + "AllowCredentials":{"shape":"Boolean"}, + "ExposeHeaders":{"shape":"NonEmptyStringList"}, + "MaxAge":{"shape":"Integer"}, + "AllowMethods":{"shape":"NonEmptyStringList"}, + "AllowHeaders":{"shape":"NonEmptyStringList"} + } + }, "AwsDynamoDbTableAttributeDefinition":{ "type":"structure", "members":{ @@ -1211,6 +1515,154 @@ "VPCId":{"shape":"NonEmptyString"} } }, + "AwsElbAppCookieStickinessPolicies":{ + "type":"list", + "member":{"shape":"AwsElbAppCookieStickinessPolicy"} + }, + "AwsElbAppCookieStickinessPolicy":{ + "type":"structure", + "members":{ + "CookieName":{"shape":"NonEmptyString"}, + "PolicyName":{"shape":"NonEmptyString"} + } + }, + "AwsElbLbCookieStickinessPolicies":{ + "type":"list", + "member":{"shape":"AwsElbLbCookieStickinessPolicy"} + }, + "AwsElbLbCookieStickinessPolicy":{ + "type":"structure", + "members":{ + "CookieExpirationPeriod":{"shape":"Long"}, + "PolicyName":{"shape":"NonEmptyString"} + } + }, + "AwsElbLoadBalancerAccessLog":{ + "type":"structure", + "members":{ + "EmitInterval":{"shape":"Integer"}, + "Enabled":{"shape":"Boolean"}, + "S3BucketName":{"shape":"NonEmptyString"}, + "S3BucketPrefix":{"shape":"NonEmptyString"} + } + }, + "AwsElbLoadBalancerAttributes":{ + "type":"structure", + "members":{ + "AccessLog":{"shape":"AwsElbLoadBalancerAccessLog"}, + "ConnectionDraining":{"shape":"AwsElbLoadBalancerConnectionDraining"}, + "ConnectionSettings":{"shape":"AwsElbLoadBalancerConnectionSettings"}, + "CrossZoneLoadBalancing":{"shape":"AwsElbLoadBalancerCrossZoneLoadBalancing"} + } + }, + "AwsElbLoadBalancerBackendServerDescription":{ + "type":"structure", + "members":{ + "InstancePort":{"shape":"Integer"}, + "PolicyNames":{"shape":"StringList"} + } + }, + "AwsElbLoadBalancerBackendServerDescriptions":{ + "type":"list", + "member":{"shape":"AwsElbLoadBalancerBackendServerDescription"} + }, + "AwsElbLoadBalancerConnectionDraining":{ + "type":"structure", + "members":{ + "Enabled":{"shape":"Boolean"}, + "Timeout":{"shape":"Integer"} + } + }, + "AwsElbLoadBalancerConnectionSettings":{ + "type":"structure", + "members":{ + "IdleTimeout":{"shape":"Integer"} + } + }, + "AwsElbLoadBalancerCrossZoneLoadBalancing":{ + "type":"structure", + "members":{ + "Enabled":{"shape":"Boolean"} + } + }, + "AwsElbLoadBalancerDetails":{ + "type":"structure", + "members":{ + "AvailabilityZones":{"shape":"StringList"}, + "BackendServerDescriptions":{"shape":"AwsElbLoadBalancerBackendServerDescriptions"}, + "CanonicalHostedZoneName":{"shape":"NonEmptyString"}, + "CanonicalHostedZoneNameID":{"shape":"NonEmptyString"}, + "CreatedTime":{"shape":"NonEmptyString"}, + "DnsName":{"shape":"NonEmptyString"}, + "HealthCheck":{"shape":"AwsElbLoadBalancerHealthCheck"}, + "Instances":{"shape":"AwsElbLoadBalancerInstances"}, + "ListenerDescriptions":{"shape":"AwsElbLoadBalancerListenerDescriptions"}, + "LoadBalancerAttributes":{"shape":"AwsElbLoadBalancerAttributes"}, + "LoadBalancerName":{"shape":"NonEmptyString"}, + "Policies":{"shape":"AwsElbLoadBalancerPolicies"}, + "Scheme":{"shape":"NonEmptyString"}, + "SecurityGroups":{"shape":"StringList"}, + "SourceSecurityGroup":{"shape":"AwsElbLoadBalancerSourceSecurityGroup"}, + "Subnets":{"shape":"StringList"}, + "VpcId":{"shape":"NonEmptyString"} + } + }, + "AwsElbLoadBalancerHealthCheck":{ + "type":"structure", + "members":{ + "HealthyThreshold":{"shape":"Integer"}, + "Interval":{"shape":"Integer"}, + "Target":{"shape":"NonEmptyString"}, + "Timeout":{"shape":"Integer"}, + "UnhealthyThreshold":{"shape":"Integer"} + } + }, + "AwsElbLoadBalancerInstance":{ + "type":"structure", + "members":{ + "InstanceId":{"shape":"NonEmptyString"} + } + }, + "AwsElbLoadBalancerInstances":{ + "type":"list", + "member":{"shape":"AwsElbLoadBalancerInstance"} + }, + "AwsElbLoadBalancerListener":{ + "type":"structure", + "members":{ + "InstancePort":{"shape":"Integer"}, + "InstanceProtocol":{"shape":"NonEmptyString"}, + "LoadBalancerPort":{"shape":"Integer"}, + "Protocol":{"shape":"NonEmptyString"}, + "SslCertificateId":{"shape":"NonEmptyString"} + } + }, + "AwsElbLoadBalancerListenerDescription":{ + "type":"structure", + "members":{ + "Listener":{"shape":"AwsElbLoadBalancerListener"}, + "PolicyNames":{"shape":"StringList"} + } + }, + "AwsElbLoadBalancerListenerDescriptions":{ + "type":"list", + "member":{"shape":"AwsElbLoadBalancerListenerDescription"} + }, + "AwsElbLoadBalancerPolicies":{ + "type":"structure", + "members":{ + "AppCookieStickinessPolicies":{"shape":"AwsElbAppCookieStickinessPolicies"}, + "LbCookieStickinessPolicies":{"shape":"AwsElbLbCookieStickinessPolicies"}, + "OtherPolicies":{"shape":"StringList"} + } + }, + "AwsElbLoadBalancerSourceSecurityGroup":{ + "type":"structure", + "members":{ + "GroupName":{"shape":"NonEmptyString"}, + "OwnerAlias":{"shape":"NonEmptyString"} + } + }, "AwsElbv2LoadBalancerDetails":{ "type":"structure", "members":{ @@ -1238,7 +1690,34 @@ "CreatedAt":{"shape":"NonEmptyString"}, "PrincipalId":{"shape":"NonEmptyString"}, "PrincipalType":{"shape":"NonEmptyString"}, - "PrincipalName":{"shape":"NonEmptyString"} + "PrincipalName":{"shape":"NonEmptyString"}, + "AccountId":{"shape":"NonEmptyString"}, + "AccessKeyId":{"shape":"NonEmptyString"}, + "SessionContext":{"shape":"AwsIamAccessKeySessionContext"} + } + }, + "AwsIamAccessKeySessionContext":{ + "type":"structure", + "members":{ + "Attributes":{"shape":"AwsIamAccessKeySessionContextAttributes"}, + "SessionIssuer":{"shape":"AwsIamAccessKeySessionContextSessionIssuer"} + } + }, + "AwsIamAccessKeySessionContextAttributes":{ + "type":"structure", + "members":{ + "MfaAuthenticated":{"shape":"Boolean"}, + "CreationDate":{"shape":"NonEmptyString"} + } + }, + "AwsIamAccessKeySessionContextSessionIssuer":{ + "type":"structure", + "members":{ + "Type":{"shape":"NonEmptyString"}, + "PrincipalId":{"shape":"NonEmptyString"}, + "Arn":{"shape":"NonEmptyString"}, + "AccountId":{"shape":"NonEmptyString"}, + "UserName":{"shape":"NonEmptyString"} } }, "AwsIamAccessKeyStatus":{ @@ -1259,6 +1738,57 @@ "type":"list", "member":{"shape":"AwsIamAttachedManagedPolicy"} }, + "AwsIamGroupDetails":{ + "type":"structure", + "members":{ + "AttachedManagedPolicies":{"shape":"AwsIamAttachedManagedPolicyList"}, + "CreateDate":{"shape":"NonEmptyString"}, + "GroupId":{"shape":"NonEmptyString"}, + "GroupName":{"shape":"NonEmptyString"}, + "GroupPolicyList":{"shape":"AwsIamGroupPolicyList"}, + "Path":{"shape":"NonEmptyString"} + } + }, + "AwsIamGroupPolicy":{ + "type":"structure", + "members":{ + "PolicyName":{"shape":"NonEmptyString"} + } + }, + "AwsIamGroupPolicyList":{ + "type":"list", + "member":{"shape":"AwsIamGroupPolicy"} + }, + "AwsIamInstanceProfile":{ + "type":"structure", + "members":{ + "Arn":{"shape":"NonEmptyString"}, + "CreateDate":{"shape":"NonEmptyString"}, + "InstanceProfileId":{"shape":"NonEmptyString"}, + "InstanceProfileName":{"shape":"NonEmptyString"}, + "Path":{"shape":"NonEmptyString"}, + "Roles":{"shape":"AwsIamInstanceProfileRoles"} + } + }, + "AwsIamInstanceProfileList":{ + "type":"list", + "member":{"shape":"AwsIamInstanceProfile"} + }, + "AwsIamInstanceProfileRole":{ + "type":"structure", + "members":{ + "Arn":{"shape":"NonEmptyString"}, + "AssumeRolePolicyDocument":{"shape":"AwsIamRoleAssumeRolePolicyDocument"}, + "CreateDate":{"shape":"NonEmptyString"}, + "Path":{"shape":"NonEmptyString"}, + "RoleId":{"shape":"NonEmptyString"}, + "RoleName":{"shape":"NonEmptyString"} + } + }, + "AwsIamInstanceProfileRoles":{ + "type":"list", + "member":{"shape":"AwsIamInstanceProfileRole"} + }, "AwsIamPermissionsBoundary":{ "type":"structure", "members":{ @@ -1304,13 +1834,27 @@ "type":"structure", "members":{ "AssumeRolePolicyDocument":{"shape":"AwsIamRoleAssumeRolePolicyDocument"}, + "AttachedManagedPolicies":{"shape":"AwsIamAttachedManagedPolicyList"}, "CreateDate":{"shape":"NonEmptyString"}, + "InstanceProfileList":{"shape":"AwsIamInstanceProfileList"}, + "PermissionsBoundary":{"shape":"AwsIamPermissionsBoundary"}, "RoleId":{"shape":"NonEmptyString"}, "RoleName":{"shape":"NonEmptyString"}, + "RolePolicyList":{"shape":"AwsIamRolePolicyList"}, "MaxSessionDuration":{"shape":"Integer"}, "Path":{"shape":"NonEmptyString"} } }, + "AwsIamRolePolicy":{ + "type":"structure", + "members":{ + "PolicyName":{"shape":"NonEmptyString"} + } + }, + "AwsIamRolePolicyList":{ + "type":"list", + "member":{"shape":"AwsIamRolePolicy"} + }, "AwsIamUserDetails":{ "type":"structure", "members":{ @@ -1772,6 +2316,200 @@ "LogTypesToDisable":{"shape":"StringList"} } }, + "AwsRedshiftClusterClusterNode":{ + "type":"structure", + "members":{ + "NodeRole":{"shape":"NonEmptyString"}, + "PrivateIpAddress":{"shape":"NonEmptyString"}, + "PublicIpAddress":{"shape":"NonEmptyString"} + } + }, + "AwsRedshiftClusterClusterNodes":{ + "type":"list", + "member":{"shape":"AwsRedshiftClusterClusterNode"} + }, + "AwsRedshiftClusterClusterParameterGroup":{ + "type":"structure", + "members":{ + "ClusterParameterStatusList":{"shape":"AwsRedshiftClusterClusterParameterStatusList"}, + "ParameterApplyStatus":{"shape":"NonEmptyString"}, + "ParameterGroupName":{"shape":"NonEmptyString"} + } + }, + "AwsRedshiftClusterClusterParameterGroups":{ + "type":"list", + "member":{"shape":"AwsRedshiftClusterClusterParameterGroup"} + }, + "AwsRedshiftClusterClusterParameterStatus":{ + "type":"structure", + "members":{ + "ParameterName":{"shape":"NonEmptyString"}, + "ParameterApplyStatus":{"shape":"NonEmptyString"}, + "ParameterApplyErrorDescription":{"shape":"NonEmptyString"} + } + }, + "AwsRedshiftClusterClusterParameterStatusList":{ + "type":"list", + "member":{"shape":"AwsRedshiftClusterClusterParameterStatus"} + }, + "AwsRedshiftClusterClusterSecurityGroup":{ + "type":"structure", + "members":{ + "ClusterSecurityGroupName":{"shape":"NonEmptyString"}, + "Status":{"shape":"NonEmptyString"} + } + }, + "AwsRedshiftClusterClusterSecurityGroups":{ + "type":"list", + "member":{"shape":"AwsRedshiftClusterClusterSecurityGroup"} + }, + "AwsRedshiftClusterClusterSnapshotCopyStatus":{ + "type":"structure", + "members":{ + "DestinationRegion":{"shape":"NonEmptyString"}, + "ManualSnapshotRetentionPeriod":{"shape":"Integer"}, + "RetentionPeriod":{"shape":"Integer"}, + "SnapshotCopyGrantName":{"shape":"NonEmptyString"} + } + }, + "AwsRedshiftClusterDeferredMaintenanceWindow":{ + "type":"structure", + "members":{ + "DeferMaintenanceEndTime":{"shape":"NonEmptyString"}, + "DeferMaintenanceIdentifier":{"shape":"NonEmptyString"}, + "DeferMaintenanceStartTime":{"shape":"NonEmptyString"} + } + }, + "AwsRedshiftClusterDeferredMaintenanceWindows":{ + "type":"list", + "member":{"shape":"AwsRedshiftClusterDeferredMaintenanceWindow"} + }, + "AwsRedshiftClusterDetails":{ + "type":"structure", + "members":{ + "AllowVersionUpgrade":{"shape":"Boolean"}, + "AutomatedSnapshotRetentionPeriod":{"shape":"Integer"}, + "AvailabilityZone":{"shape":"NonEmptyString"}, + "ClusterAvailabilityStatus":{"shape":"NonEmptyString"}, + "ClusterCreateTime":{"shape":"NonEmptyString"}, + "ClusterIdentifier":{"shape":"NonEmptyString"}, + "ClusterNodes":{"shape":"AwsRedshiftClusterClusterNodes"}, + "ClusterParameterGroups":{"shape":"AwsRedshiftClusterClusterParameterGroups"}, + "ClusterPublicKey":{"shape":"NonEmptyString"}, + "ClusterRevisionNumber":{"shape":"NonEmptyString"}, + "ClusterSecurityGroups":{"shape":"AwsRedshiftClusterClusterSecurityGroups"}, + "ClusterSnapshotCopyStatus":{"shape":"AwsRedshiftClusterClusterSnapshotCopyStatus"}, + "ClusterStatus":{"shape":"NonEmptyString"}, + "ClusterSubnetGroupName":{"shape":"NonEmptyString"}, + "ClusterVersion":{"shape":"NonEmptyString"}, + "DBName":{"shape":"NonEmptyString"}, + "DeferredMaintenanceWindows":{"shape":"AwsRedshiftClusterDeferredMaintenanceWindows"}, + "ElasticIpStatus":{"shape":"AwsRedshiftClusterElasticIpStatus"}, + "ElasticResizeNumberOfNodeOptions":{"shape":"NonEmptyString"}, + "Encrypted":{"shape":"Boolean"}, + "Endpoint":{"shape":"AwsRedshiftClusterEndpoint"}, + "EnhancedVpcRouting":{"shape":"Boolean"}, + "ExpectedNextSnapshotScheduleTime":{"shape":"NonEmptyString"}, + "ExpectedNextSnapshotScheduleTimeStatus":{"shape":"NonEmptyString"}, + "HsmStatus":{"shape":"AwsRedshiftClusterHsmStatus"}, + "IamRoles":{"shape":"AwsRedshiftClusterIamRoles"}, + "KmsKeyId":{"shape":"NonEmptyString"}, + "MaintenanceTrackName":{"shape":"NonEmptyString"}, + "ManualSnapshotRetentionPeriod":{"shape":"Integer"}, + "MasterUsername":{"shape":"NonEmptyString"}, + "NextMaintenanceWindowStartTime":{"shape":"NonEmptyString"}, + "NodeType":{"shape":"NonEmptyString"}, + "NumberOfNodes":{"shape":"Integer"}, + "PendingActions":{"shape":"StringList"}, + "PendingModifiedValues":{"shape":"AwsRedshiftClusterPendingModifiedValues"}, + "PreferredMaintenanceWindow":{"shape":"NonEmptyString"}, + "PubliclyAccessible":{"shape":"Boolean"}, + "ResizeInfo":{"shape":"AwsRedshiftClusterResizeInfo"}, + "RestoreStatus":{"shape":"AwsRedshiftClusterRestoreStatus"}, + "SnapshotScheduleIdentifier":{"shape":"NonEmptyString"}, + "SnapshotScheduleState":{"shape":"NonEmptyString"}, + "VpcId":{"shape":"NonEmptyString"}, + "VpcSecurityGroups":{"shape":"AwsRedshiftClusterVpcSecurityGroups"} + } + }, + "AwsRedshiftClusterElasticIpStatus":{ + "type":"structure", + "members":{ + "ElasticIp":{"shape":"NonEmptyString"}, + "Status":{"shape":"NonEmptyString"} + } + }, + "AwsRedshiftClusterEndpoint":{ + "type":"structure", + "members":{ + "Address":{"shape":"NonEmptyString"}, + "Port":{"shape":"Integer"} + } + }, + "AwsRedshiftClusterHsmStatus":{ + "type":"structure", + "members":{ + "HsmClientCertificateIdentifier":{"shape":"NonEmptyString"}, + "HsmConfigurationIdentifier":{"shape":"NonEmptyString"}, + "Status":{"shape":"NonEmptyString"} + } + }, + "AwsRedshiftClusterIamRole":{ + "type":"structure", + "members":{ + "ApplyStatus":{"shape":"NonEmptyString"}, + "IamRoleArn":{"shape":"NonEmptyString"} + } + }, + "AwsRedshiftClusterIamRoles":{ + "type":"list", + "member":{"shape":"AwsRedshiftClusterIamRole"} + }, + "AwsRedshiftClusterPendingModifiedValues":{ + "type":"structure", + "members":{ + "AutomatedSnapshotRetentionPeriod":{"shape":"Integer"}, + "ClusterIdentifier":{"shape":"NonEmptyString"}, + "ClusterType":{"shape":"NonEmptyString"}, + "ClusterVersion":{"shape":"NonEmptyString"}, + "EncryptionType":{"shape":"NonEmptyString"}, + "EnhancedVpcRouting":{"shape":"Boolean"}, + "MaintenanceTrackName":{"shape":"NonEmptyString"}, + "MasterUserPassword":{"shape":"NonEmptyString"}, + "NodeType":{"shape":"NonEmptyString"}, + "NumberOfNodes":{"shape":"Integer"}, + "PubliclyAccessible":{"shape":"Boolean"} + } + }, + "AwsRedshiftClusterResizeInfo":{ + "type":"structure", + "members":{ + "AllowCancelResize":{"shape":"Boolean"}, + "ResizeType":{"shape":"NonEmptyString"} + } + }, + "AwsRedshiftClusterRestoreStatus":{ + "type":"structure", + "members":{ + "CurrentRestoreRateInMegaBytesPerSecond":{"shape":"Double"}, + "ElapsedTimeInSeconds":{"shape":"Long"}, + "EstimatedTimeToCompletionInSeconds":{"shape":"Long"}, + "ProgressInMegaBytes":{"shape":"Long"}, + "SnapshotSizeInMegaBytes":{"shape":"Long"}, + "Status":{"shape":"NonEmptyString"} + } + }, + "AwsRedshiftClusterVpcSecurityGroup":{ + "type":"structure", + "members":{ + "Status":{"shape":"NonEmptyString"}, + "VpcSecurityGroupId":{"shape":"NonEmptyString"} + } + }, + "AwsRedshiftClusterVpcSecurityGroups":{ + "type":"list", + "member":{"shape":"AwsRedshiftClusterVpcSecurityGroup"} + }, "AwsS3BucketDetails":{ "type":"structure", "members":{ @@ -2899,6 +3637,7 @@ "Reason":{"shape":"NonEmptyString"} } }, + "Long":{"type":"long"}, "Malware":{ "type":"structure", "required":["Name"], @@ -3202,6 +3941,7 @@ "Id":{"shape":"NonEmptyString"}, "Partition":{"shape":"Partition"}, "Region":{"shape":"NonEmptyString"}, + "ResourceRole":{"shape":"NonEmptyString"}, "Tags":{"shape":"FieldMap"}, "Details":{"shape":"ResourceDetails"} } @@ -3239,7 +3979,16 @@ "AwsIamAccessKey":{"shape":"AwsIamAccessKeyDetails"}, "AwsIamUser":{"shape":"AwsIamUserDetails"}, "AwsIamPolicy":{"shape":"AwsIamPolicyDetails"}, + "AwsApiGatewayV2Stage":{"shape":"AwsApiGatewayV2StageDetails"}, + "AwsApiGatewayV2Api":{"shape":"AwsApiGatewayV2ApiDetails"}, "AwsDynamoDbTable":{"shape":"AwsDynamoDbTableDetails"}, + "AwsApiGatewayStage":{"shape":"AwsApiGatewayStageDetails"}, + "AwsApiGatewayRestApi":{"shape":"AwsApiGatewayRestApiDetails"}, + "AwsCloudTrailTrail":{"shape":"AwsCloudTrailTrailDetails"}, + "AwsCertificateManagerCertificate":{"shape":"AwsCertificateManagerCertificateDetails"}, + "AwsRedshiftCluster":{"shape":"AwsRedshiftClusterDetails"}, + "AwsElbLoadBalancer":{"shape":"AwsElbLoadBalancerDetails"}, + "AwsIamGroup":{"shape":"AwsIamGroupDetails"}, "AwsIamRole":{"shape":"AwsIamRoleDetails"}, "AwsKmsKey":{"shape":"AwsKmsKeyDetails"}, "AwsLambdaFunction":{"shape":"AwsLambdaFunctionDetails"}, diff --git a/models/apis/securityhub/2018-10-26/docs-2.json b/models/apis/securityhub/2018-10-26/docs-2.json index 826011a9c15..366697ba09a 100644 --- a/models/apis/securityhub/2018-10-26/docs-2.json +++ b/models/apis/securityhub/2018-10-26/docs-2.json @@ -1,12 +1,12 @@ { "version": "2.0", - "service": "

Security Hub provides you with a comprehensive view of the security state of your AWS environment and resources. It also provides you with the readiness status of your environment based on controls from supported security standards. Security Hub collects security data from AWS accounts, services, and integrated third-party products and helps you analyze security trends in your environment to identify the highest priority security issues. For more information about Security Hub, see the AWS Security Hub User Guide .

When you use operations in the Security Hub API, the requests are executed only in the AWS Region that is currently active or in the specific AWS Region that you specify in your request. Any configuration or settings change that results from the operation is applied only to that Region. To make the same change in other Regions, execute the same command for each Region to apply the change to.

For example, if your Region is set to us-west-2, when you use CreateMembers to add a member account to Security Hub, the association of the member account with the master account is created only in the us-west-2 Region. Security Hub must be enabled for the member account in the same Region that the invitation was sent from.

The following throttling limits apply to using Security Hub API operations.

  • GetFindings - RateLimit of 3 requests per second. BurstLimit of 6 requests per second.

  • UpdateFindings - RateLimit of 1 request per second. BurstLimit of 5 requests per second.

  • All other operations - RateLimit of 10 requests per second. BurstLimit of 30 requests per second.

", + "service": "

Security Hub provides you with a comprehensive view of the security state of your AWS environment and resources. It also provides you with the readiness status of your environment based on controls from supported security standards. Security Hub collects security data from AWS accounts, services, and integrated third-party products and helps you analyze security trends in your environment to identify the highest priority security issues. For more information about Security Hub, see the AWS Security Hub User Guide .

When you use operations in the Security Hub API, the requests are executed only in the AWS Region that is currently active or in the specific AWS Region that you specify in your request. Any configuration or settings change that results from the operation is applied only to that Region. To make the same change in other Regions, execute the same command for each Region to apply the change to.

For example, if your Region is set to us-west-2, when you use CreateMembers to add a member account to Security Hub, the association of the member account with the master account is created only in the us-west-2 Region. Security Hub must be enabled for the member account in the same Region that the invitation was sent from.

The following throttling limits apply to using Security Hub API operations.

  • BatchEnableStandards - RateLimit of 1 request per second, BurstLimit of 1 request per second.

  • GetFindings - RateLimit of 3 requests per second. BurstLimit of 6 requests per second.

  • UpdateFindings - RateLimit of 1 request per second. BurstLimit of 5 requests per second.

  • UpdateStandardsControl - RateLimit of 1 request per second, BurstLimit of 5 requests per second.

  • All other operations - RateLimit of 10 requests per second. BurstLimit of 30 requests per second.

", "operations": { "AcceptInvitation": "

Accepts the invitation to be a member account and be monitored by the Security Hub master account that the invitation was sent from.

When the member account accepts the invitation, permission is granted to the master account to view findings generated in the member account.

", "BatchDisableStandards": "

Disables the standards specified by the provided StandardsSubscriptionArns.

For more information, see Security Standards section of the AWS Security Hub User Guide.

", "BatchEnableStandards": "

Enables the standards specified by the provided StandardsArn. To obtain the ARN for a standard, use the DescribeStandards operation.

For more information, see the Security Standards section of the AWS Security Hub User Guide.

", "BatchImportFindings": "

Imports security findings generated from an integrated third-party product into Security Hub. This action is requested by the integrated product to import its findings into Security Hub.

The maximum allowed size for a finding is 240 Kb. An error is returned for any finding larger than 240 Kb.

After a finding is created, BatchImportFindings cannot be used to update the following finding fields and objects, which Security Hub customers use to manage their investigation workflow.

  • Confidence

  • Criticality

  • Note

  • RelatedFindings

  • Severity

  • Types

  • UserDefinedFields

  • VerificationState

  • Workflow

", - "BatchUpdateFindings": "

Used by Security Hub customers to update information about their investigation into a finding. Requested by master accounts or member accounts. Master accounts can update findings for their account and their member accounts. Member accounts can update findings for their account.

Updates from BatchUpdateFindings do not affect the value of UpdatedAt for a finding.

Master accounts can use BatchUpdateFindings to update the following finding fields and objects.

  • Confidence

  • Criticality

  • Note

  • RelatedFindings

  • Severity

  • Types

  • UserDefinedFields

  • VerificationState

  • Workflow

Member accounts can only use BatchUpdateFindings to update the Note object.

", + "BatchUpdateFindings": "

Used by Security Hub customers to update information about their investigation into a finding. Requested by master accounts or member accounts. Master accounts can update findings for their account and their member accounts. Member accounts can update findings for their account.

Updates from BatchUpdateFindings do not affect the value of UpdatedAt for a finding.

Master and member accounts can use BatchUpdateFindings to update the following finding fields and objects.

  • Confidence

  • Criticality

  • Note

  • RelatedFindings

  • Severity

  • Types

  • UserDefinedFields

  • VerificationState

  • Workflow

You can configure IAM policies to restrict access to fields and field values. For example, you might not want member accounts to be able to suppress findings or change the finding severity. See Configuring access to BatchUpdateFindings in the AWS Security Hub User Guide.

", "CreateActionTarget": "

Creates a custom action target in Security Hub.

You can use custom actions on findings and insights in Security Hub to trigger target actions in Amazon CloudWatch Events.

", "CreateInsight": "

Creates a custom insight in Security Hub. An insight is a consolidation of findings that relate to a security issue that requires attention or remediation.

To group the related findings in the insight, use the GroupByAttribute.

", "CreateMembers": "

Creates a member association in Security Hub between the specified accounts and the account used to make the request, which is the master account. To successfully create a member, you must use this action from an account that already has Security Hub enabled. To enable Security Hub, you can use the EnableSecurityHub operation.

After you use CreateMembers to create member account associations in Security Hub, you must use the InviteMembers operation to invite the accounts to enable Security Hub and become member accounts in Security Hub.

If the account owner accepts the invitation, the account becomes a member account in Security Hub. A permissions policy is added that permits the master account to view the findings generated in the member account. When Security Hub is enabled in the invited account, findings start to be sent to both the member and master accounts.

To remove the association between the master and member accounts, use the DisassociateFromMasterAccount or DisassociateMembers operation.

", @@ -125,12 +125,159 @@ "AwsElbv2LoadBalancerDetails$AvailabilityZones": "

The Availability Zones for the load balancer.

" } }, + "AwsApiGatewayAccessLogSettings": { + "base": "

Contains information about settings for logging access for the stage.

", + "refs": { + "AwsApiGatewayStageDetails$AccessLogSettings": "

Settings for logging access for the stage.

", + "AwsApiGatewayV2StageDetails$AccessLogSettings": "

Information about settings for logging access for the stage.

" + } + }, + "AwsApiGatewayCanarySettings": { + "base": "

Contains information about settings for canary deployment in the stage.

", + "refs": { + "AwsApiGatewayStageDetails$CanarySettings": "

Information about settings for canary deployment in the stage.

" + } + }, + "AwsApiGatewayEndpointConfiguration": { + "base": "

Contains information about the endpoints for the API.

", + "refs": { + "AwsApiGatewayRestApiDetails$EndpointConfiguration": "

The endpoint configuration of the REST API.

" + } + }, + "AwsApiGatewayMethodSettings": { + "base": "

Defines settings for a method for the stage.

", + "refs": { + "AwsApiGatewayMethodSettingsList$member": null + } + }, + "AwsApiGatewayMethodSettingsList": { + "base": null, + "refs": { + "AwsApiGatewayStageDetails$MethodSettings": "

Defines the method settings for the stage.

" + } + }, + "AwsApiGatewayRestApiDetails": { + "base": "

contains information about a REST API in version 1 of Amazon API Gateway.

", + "refs": { + "ResourceDetails$AwsApiGatewayRestApi": "

" + } + }, + "AwsApiGatewayStageDetails": { + "base": "

Provides information about a version 1 Amazon API Gateway stage.

", + "refs": { + "ResourceDetails$AwsApiGatewayStage": "

" + } + }, + "AwsApiGatewayV2ApiDetails": { + "base": "

Contains information about a version 2 API in Amazon API Gateway.

", + "refs": { + "ResourceDetails$AwsApiGatewayV2Api": "

" + } + }, + "AwsApiGatewayV2RouteSettings": { + "base": "

Contains route settings for a stage.

", + "refs": { + "AwsApiGatewayV2StageDetails$DefaultRouteSettings": "

Default route settings for the stage.

", + "AwsApiGatewayV2StageDetails$RouteSettings": "

The route settings for the stage.

" + } + }, + "AwsApiGatewayV2StageDetails": { + "base": "

Contains information about a version 2 stage for Amazon API Gateway.

", + "refs": { + "ResourceDetails$AwsApiGatewayV2Stage": "

" + } + }, "AwsAutoScalingAutoScalingGroupDetails": { "base": "

Provides details about an auto scaling group.

", "refs": { "ResourceDetails$AwsAutoScalingAutoScalingGroup": "

Details for an autoscaling group.

" } }, + "AwsCertificateManagerCertificateDetails": { + "base": "

Provides details about an AWS Certificate Manager certificate.

", + "refs": { + "ResourceDetails$AwsCertificateManagerCertificate": "

" + } + }, + "AwsCertificateManagerCertificateDomainValidationOption": { + "base": "

Contains information about one of the following:

  • The initial validation of each domain name that occurs as a result of the RequestCertificate request

  • The validation of each domain name in the certificate, as it pertains to AWS Certificate Manager managed renewal

", + "refs": { + "AwsCertificateManagerCertificateDomainValidationOptions$member": null + } + }, + "AwsCertificateManagerCertificateDomainValidationOptions": { + "base": null, + "refs": { + "AwsCertificateManagerCertificateDetails$DomainValidationOptions": "

Contains information about the initial validation of each domain name that occurs as a result of the RequestCertificate request.

Only provided if the certificate type is AMAZON_ISSUED.

", + "AwsCertificateManagerCertificateRenewalSummary$DomainValidationOptions": "

Information about the validation of each domain name in the certificate, as it pertains to AWS Certificate Manager managed renewal. Provided only when the certificate type is AMAZON_ISSUED.

" + } + }, + "AwsCertificateManagerCertificateExtendedKeyUsage": { + "base": "

Contains information about an extended key usage X.509 v3 extension object.

", + "refs": { + "AwsCertificateManagerCertificateExtendedKeyUsages$member": null + } + }, + "AwsCertificateManagerCertificateExtendedKeyUsages": { + "base": null, + "refs": { + "AwsCertificateManagerCertificateDetails$ExtendedKeyUsages": "

Contains a list of Extended Key Usage X.509 v3 extension objects. Each object specifies a purpose for which the certificate public key can be used and consists of a name and an object identifier (OID).

" + } + }, + "AwsCertificateManagerCertificateKeyUsage": { + "base": "

Contains information about a key usage X.509 v3 extension object.

", + "refs": { + "AwsCertificateManagerCertificateKeyUsages$member": null + } + }, + "AwsCertificateManagerCertificateKeyUsages": { + "base": null, + "refs": { + "AwsCertificateManagerCertificateDetails$KeyUsages": "

A list of key usage X.509 v3 extension objects.

" + } + }, + "AwsCertificateManagerCertificateOptions": { + "base": "

Contains other options for the certificate.

", + "refs": { + "AwsCertificateManagerCertificateDetails$Options": "

Provides a value that specifies whether to add the certificate to a transparency log.

" + } + }, + "AwsCertificateManagerCertificateRenewalSummary": { + "base": "

Contains information about the AWS Certificate Manager managed renewal for an AMAZON_ISSUED certificate.

", + "refs": { + "AwsCertificateManagerCertificateDetails$RenewalSummary": "

Information about the status of the AWS Certificate Manager managed renewal for the certificate. Provided only when the certificate type is AMAZON_ISSUED.

" + } + }, + "AwsCertificateManagerCertificateResourceRecord": { + "base": "

Provides details about the CNAME record that is added to the DNS database for domain validation.

", + "refs": { + "AwsCertificateManagerCertificateDomainValidationOption$ResourceRecord": "

The CNAME record that is added to the DNS database for domain validation.

" + } + }, + "AwsCloudFrontDistributionCacheBehavior": { + "base": "

Information about a cache behavior for the distribution.

", + "refs": { + "AwsCloudFrontDistributionCacheBehaviorsItemList$member": null + } + }, + "AwsCloudFrontDistributionCacheBehaviors": { + "base": "

Provides information about caching for the distribution.

", + "refs": { + "AwsCloudFrontDistributionDetails$CacheBehaviors": "

Provides information about the cache configuration for the distribution.

" + } + }, + "AwsCloudFrontDistributionCacheBehaviorsItemList": { + "base": null, + "refs": { + "AwsCloudFrontDistributionCacheBehaviors$Items": "

The cache behaviors for the distribution.

" + } + }, + "AwsCloudFrontDistributionDefaultCacheBehavior": { + "base": "

Contains information about the default cache configuration for the distribution.

", + "refs": { + "AwsCloudFrontDistributionDetails$DefaultCacheBehavior": "

The default cache behavior for the configuration.

" + } + }, "AwsCloudFrontDistributionDetails": { "base": "

A distribution configuration.

", "refs": { @@ -143,6 +290,42 @@ "AwsCloudFrontDistributionDetails$Logging": "

A complex type that controls whether access logs are written for the distribution.

" } }, + "AwsCloudFrontDistributionOriginGroup": { + "base": "

Information about an origin group for the distribution.

", + "refs": { + "AwsCloudFrontDistributionOriginGroupsItemList$member": null + } + }, + "AwsCloudFrontDistributionOriginGroupFailover": { + "base": "

Provides information about when an origin group fails over.

", + "refs": { + "AwsCloudFrontDistributionOriginGroup$FailoverCriteria": "

Provides the criteria for an origin group to fail over.

" + } + }, + "AwsCloudFrontDistributionOriginGroupFailoverStatusCodes": { + "base": "

The status codes that cause an origin group to fail over.

", + "refs": { + "AwsCloudFrontDistributionOriginGroupFailover$StatusCodes": "

Information about the status codes that cause an origin group to fail over.

" + } + }, + "AwsCloudFrontDistributionOriginGroupFailoverStatusCodesItemList": { + "base": null, + "refs": { + "AwsCloudFrontDistributionOriginGroupFailoverStatusCodes$Items": "

The list of status code values that can cause a failover to the next origin.

" + } + }, + "AwsCloudFrontDistributionOriginGroups": { + "base": "

Provides information about origin groups that are associated with the distribution.

", + "refs": { + "AwsCloudFrontDistributionDetails$OriginGroups": "

Provides information about the origin groups in the distribution.

" + } + }, + "AwsCloudFrontDistributionOriginGroupsItemList": { + "base": null, + "refs": { + "AwsCloudFrontDistributionOriginGroups$Items": "

The list of origin groups.

" + } + }, "AwsCloudFrontDistributionOriginItem": { "base": "

A complex type that describes the Amazon S3 bucket, HTTP server (for example, a web server), Amazon Elemental MediaStore, or other server from which CloudFront gets your files.

", "refs": { @@ -155,12 +338,24 @@ "AwsCloudFrontDistributionOrigins$Items": "

A complex type that contains origins or origin groups for this distribution.

" } }, + "AwsCloudFrontDistributionOriginS3OriginConfig": { + "base": "

Information about an origin that is an S3 bucket that is not configured with static website hosting.

", + "refs": { + "AwsCloudFrontDistributionOriginItem$S3OriginConfig": "

An origin that is an S3 bucket that is not configured with static website hosting.

" + } + }, "AwsCloudFrontDistributionOrigins": { "base": "

A complex type that contains information about origins and origin groups for this distribution.

", "refs": { "AwsCloudFrontDistributionDetails$Origins": "

A complex type that contains information about origins for this distribution.

" } }, + "AwsCloudTrailTrailDetails": { + "base": "

Provides details about a CloudTrail trail.

", + "refs": { + "ResourceDetails$AwsCloudTrailTrail": "

" + } + }, "AwsCodeBuildProjectDetails": { "base": "

Information about an AWS CodeBuild project.

", "refs": { @@ -191,6 +386,12 @@ "AwsCodeBuildProjectDetails$VpcConfig": "

Information about the VPC configuration that AWS CodeBuild accesses.

" } }, + "AwsCorsConfiguration": { + "base": "

Contains the cross-origin resource sharing (CORS) configuration for the API. CORS is only supported for HTTP APIs.

", + "refs": { + "AwsApiGatewayV2ApiDetails$CorsConfiguration": "

A cross-origin resource sharing (CORS) configuration. Supported only for HTTP APIs.

" + } + }, "AwsDynamoDbTableAttributeDefinition": { "base": "

Contains a definition of an attribute for the table.

", "refs": { @@ -473,6 +674,126 @@ "AwsElasticsearchDomainDetails$VPCOptions": "

Information that Amazon ES derives based on VPCOptions for the domain.

" } }, + "AwsElbAppCookieStickinessPolicies": { + "base": null, + "refs": { + "AwsElbLoadBalancerPolicies$AppCookieStickinessPolicies": "

The stickiness policies that are created using CreateAppCookieStickinessPolicy.

" + } + }, + "AwsElbAppCookieStickinessPolicy": { + "base": "

Contains information about a stickiness policy that was created using CreateAppCookieStickinessPolicy.

", + "refs": { + "AwsElbAppCookieStickinessPolicies$member": null + } + }, + "AwsElbLbCookieStickinessPolicies": { + "base": null, + "refs": { + "AwsElbLoadBalancerPolicies$LbCookieStickinessPolicies": "

The stickiness policies that are created using CreateLBCookieStickinessPolicy.

" + } + }, + "AwsElbLbCookieStickinessPolicy": { + "base": "

Contains information about a stickiness policy that was created using CreateLBCookieStickinessPolicy.

", + "refs": { + "AwsElbLbCookieStickinessPolicies$member": null + } + }, + "AwsElbLoadBalancerAccessLog": { + "base": "

Contains information about the access log configuration for the load balancer.

", + "refs": { + "AwsElbLoadBalancerAttributes$AccessLog": "

Information about the access log configuration for the load balancer.

If the access log is enabled, the load balancer captures detailed information about all requests. It delivers the information to a specified S3 bucket.

" + } + }, + "AwsElbLoadBalancerAttributes": { + "base": "

Contains attributes for the load balancer.

", + "refs": { + "AwsElbLoadBalancerDetails$LoadBalancerAttributes": "

The attributes for a load balancer.

" + } + }, + "AwsElbLoadBalancerBackendServerDescription": { + "base": "

Provides information about the configuration of an EC2 instance for the load balancer.

", + "refs": { + "AwsElbLoadBalancerBackendServerDescriptions$member": null + } + }, + "AwsElbLoadBalancerBackendServerDescriptions": { + "base": null, + "refs": { + "AwsElbLoadBalancerDetails$BackendServerDescriptions": "

Information about the configuration of the EC2 instances.

" + } + }, + "AwsElbLoadBalancerConnectionDraining": { + "base": "

Contains information about the connection draining configuration for the load balancer.

", + "refs": { + "AwsElbLoadBalancerAttributes$ConnectionDraining": "

Information about the connection draining configuration for the load balancer.

If connection draining is enabled, the load balancer allows existing requests to complete before it shifts traffic away from a deregistered or unhealthy instance.

" + } + }, + "AwsElbLoadBalancerConnectionSettings": { + "base": "

Contains connection settings for the load balancer.

", + "refs": { + "AwsElbLoadBalancerAttributes$ConnectionSettings": "

Connection settings for the load balancer.

If an idle timeout is configured, the load balancer allows connections to remain idle for the specified duration. When a connection is idle, no data is sent over the connection.

" + } + }, + "AwsElbLoadBalancerCrossZoneLoadBalancing": { + "base": "

Contains cross-zone load balancing settings for the load balancer.

", + "refs": { + "AwsElbLoadBalancerAttributes$CrossZoneLoadBalancing": "

Cross-zone load balancing settings for the load balancer.

If cross-zone load balancing is enabled, the load balancer routes the request traffic evenly across all instances regardless of the Availability Zones.

" + } + }, + "AwsElbLoadBalancerDetails": { + "base": "

Contains details about a Classic Load Balancer.

", + "refs": { + "ResourceDetails$AwsElbLoadBalancer": "

" + } + }, + "AwsElbLoadBalancerHealthCheck": { + "base": "

Contains information about the health checks that are conducted on the load balancer.

", + "refs": { + "AwsElbLoadBalancerDetails$HealthCheck": "

Information about the health checks that are conducted on the load balancer.

" + } + }, + "AwsElbLoadBalancerInstance": { + "base": "

Provides information about an EC2 instance for a load balancer.

", + "refs": { + "AwsElbLoadBalancerInstances$member": null + } + }, + "AwsElbLoadBalancerInstances": { + "base": null, + "refs": { + "AwsElbLoadBalancerDetails$Instances": "

List of EC2 instances for the load balancer.

" + } + }, + "AwsElbLoadBalancerListener": { + "base": "

Information about a load balancer listener.

", + "refs": { + "AwsElbLoadBalancerListenerDescription$Listener": "

Information about the listener.

" + } + }, + "AwsElbLoadBalancerListenerDescription": { + "base": "

Lists the policies that are enabled for a load balancer listener.

", + "refs": { + "AwsElbLoadBalancerListenerDescriptions$member": null + } + }, + "AwsElbLoadBalancerListenerDescriptions": { + "base": null, + "refs": { + "AwsElbLoadBalancerDetails$ListenerDescriptions": "

The policies that are enabled for the load balancer listeners.

" + } + }, + "AwsElbLoadBalancerPolicies": { + "base": "

Contains information about the policies for a load balancer.

", + "refs": { + "AwsElbLoadBalancerDetails$Policies": "

The policies for a load balancer.

" + } + }, + "AwsElbLoadBalancerSourceSecurityGroup": { + "base": "

Contains information about the security group for the load balancer.

", + "refs": { + "AwsElbLoadBalancerDetails$SourceSecurityGroup": "

Information about the security group for the load balancer. This is the security group that is used for inbound rules.

" + } + }, "AwsElbv2LoadBalancerDetails": { "base": "

Information about a load balancer.

", "refs": { @@ -485,6 +806,24 @@ "ResourceDetails$AwsIamAccessKey": "

Details about an IAM access key related to a finding.

" } }, + "AwsIamAccessKeySessionContext": { + "base": "

Provides information about the session that the key was used for.

", + "refs": { + "AwsIamAccessKeyDetails$SessionContext": "

Information about the session that the key was used for.

" + } + }, + "AwsIamAccessKeySessionContextAttributes": { + "base": "

Attributes of the session that the key was used for.

", + "refs": { + "AwsIamAccessKeySessionContext$Attributes": "

Attributes of the session that the key was used for.

" + } + }, + "AwsIamAccessKeySessionContextSessionIssuer": { + "base": "

Information about the entity that created the session.

", + "refs": { + "AwsIamAccessKeySessionContext$SessionIssuer": "

Information about the entity that created the session.

" + } + }, "AwsIamAccessKeyStatus": { "base": null, "refs": { @@ -492,7 +831,7 @@ } }, "AwsIamAttachedManagedPolicy": { - "base": "

A managed policy that is attached to an IAM user.

", + "base": "

A managed policy that is attached to an IAM principal.

", "refs": { "AwsIamAttachedManagedPolicyList$member": null } @@ -500,12 +839,57 @@ "AwsIamAttachedManagedPolicyList": { "base": null, "refs": { + "AwsIamGroupDetails$AttachedManagedPolicies": "

A list of the managed policies that are attached to the IAM group.

", + "AwsIamRoleDetails$AttachedManagedPolicies": "

The list of the managed policies that are attached to the role.

", "AwsIamUserDetails$AttachedManagedPolicies": "

A list of the managed policies that are attached to the user.

" } }, + "AwsIamGroupDetails": { + "base": "

Contains details about an IAM group.

", + "refs": { + "ResourceDetails$AwsIamGroup": "

" + } + }, + "AwsIamGroupPolicy": { + "base": "

A managed policy that is attached to the IAM group.

", + "refs": { + "AwsIamGroupPolicyList$member": null + } + }, + "AwsIamGroupPolicyList": { + "base": null, + "refs": { + "AwsIamGroupDetails$GroupPolicyList": "

The list of inline policies that are embedded in the group.

" + } + }, + "AwsIamInstanceProfile": { + "base": "

Information about an instance profile.

", + "refs": { + "AwsIamInstanceProfileList$member": null + } + }, + "AwsIamInstanceProfileList": { + "base": null, + "refs": { + "AwsIamRoleDetails$InstanceProfileList": "

The list of instance profiles that contain this role.

" + } + }, + "AwsIamInstanceProfileRole": { + "base": "

Information about a role associated with an instance profile.

", + "refs": { + "AwsIamInstanceProfileRoles$member": null + } + }, + "AwsIamInstanceProfileRoles": { + "base": null, + "refs": { + "AwsIamInstanceProfile$Roles": "

The roles associated with the instance profile.

" + } + }, "AwsIamPermissionsBoundary": { - "base": "

Information about the policy used to set the permissions boundary for an IAM user.

", + "base": "

Information about the policy used to set the permissions boundary for an IAM principal.

", "refs": { + "AwsIamRoleDetails$PermissionsBoundary": null, "AwsIamUserDetails$PermissionsBoundary": "

The permissions boundary for the user.

" } }, @@ -530,6 +914,7 @@ "AwsIamRoleAssumeRolePolicyDocument": { "base": null, "refs": { + "AwsIamInstanceProfileRole$AssumeRolePolicyDocument": "

The policy that grants an entity permission to assume the role.

", "AwsIamRoleDetails$AssumeRolePolicyDocument": "

The trust policy that grants permission to assume the role.

" } }, @@ -539,6 +924,18 @@ "ResourceDetails$AwsIamRole": "

Details about an IAM role.

" } }, + "AwsIamRolePolicy": { + "base": "

An inline policy that is embedded in the role.

", + "refs": { + "AwsIamRolePolicyList$member": null + } + }, + "AwsIamRolePolicyList": { + "base": null, + "refs": { + "AwsIamRoleDetails$RolePolicyList": "

The list of inline policies that are embedded in the role.

" + } + }, "AwsIamUserDetails": { "base": "

Information about an IAM user.

", "refs": { @@ -820,6 +1217,138 @@ "AwsRdsDbPendingModifiedValues$PendingCloudWatchLogsExports": "

" } }, + "AwsRedshiftClusterClusterNode": { + "base": "

A node in an Amazon Redshift cluster.

", + "refs": { + "AwsRedshiftClusterClusterNodes$member": null + } + }, + "AwsRedshiftClusterClusterNodes": { + "base": null, + "refs": { + "AwsRedshiftClusterDetails$ClusterNodes": "

The nodes in the cluster.

" + } + }, + "AwsRedshiftClusterClusterParameterGroup": { + "base": "

A cluster parameter group that is associated with an Amazon Redshift cluster.

", + "refs": { + "AwsRedshiftClusterClusterParameterGroups$member": null + } + }, + "AwsRedshiftClusterClusterParameterGroups": { + "base": null, + "refs": { + "AwsRedshiftClusterDetails$ClusterParameterGroups": "

The list of cluster parameter groups that are associated with this cluster.

" + } + }, + "AwsRedshiftClusterClusterParameterStatus": { + "base": "

The status of a parameter in a cluster parameter group for an Amazon Redshift cluster.

", + "refs": { + "AwsRedshiftClusterClusterParameterStatusList$member": null + } + }, + "AwsRedshiftClusterClusterParameterStatusList": { + "base": null, + "refs": { + "AwsRedshiftClusterClusterParameterGroup$ClusterParameterStatusList": "

The list of parameter statuses.

" + } + }, + "AwsRedshiftClusterClusterSecurityGroup": { + "base": "

A security group that is associated with the cluster.

", + "refs": { + "AwsRedshiftClusterClusterSecurityGroups$member": null + } + }, + "AwsRedshiftClusterClusterSecurityGroups": { + "base": null, + "refs": { + "AwsRedshiftClusterDetails$ClusterSecurityGroups": "

A list of cluster security groups that are associated with the cluster.

" + } + }, + "AwsRedshiftClusterClusterSnapshotCopyStatus": { + "base": "

Information about a cross-Region snapshot copy.

", + "refs": { + "AwsRedshiftClusterDetails$ClusterSnapshotCopyStatus": "

Information about the destination Region and retention period for the cross-Region snapshot copy.

" + } + }, + "AwsRedshiftClusterDeferredMaintenanceWindow": { + "base": "

A time windows during which maintenance was deferred for an Amazon Redshift cluster.

", + "refs": { + "AwsRedshiftClusterDeferredMaintenanceWindows$member": null + } + }, + "AwsRedshiftClusterDeferredMaintenanceWindows": { + "base": null, + "refs": { + "AwsRedshiftClusterDetails$DeferredMaintenanceWindows": "

List of time windows during which maintenance was deferred.

" + } + }, + "AwsRedshiftClusterDetails": { + "base": "

Details about an Amazon Redshift cluster.

", + "refs": { + "ResourceDetails$AwsRedshiftCluster": "

" + } + }, + "AwsRedshiftClusterElasticIpStatus": { + "base": "

The status of the elastic IP (EIP) address for an Amazon Redshift cluster.

", + "refs": { + "AwsRedshiftClusterDetails$ElasticIpStatus": "

Information about the status of the Elastic IP (EIP) address.

" + } + }, + "AwsRedshiftClusterEndpoint": { + "base": "

The connection endpoint for an Amazon Redshift cluster.

", + "refs": { + "AwsRedshiftClusterDetails$Endpoint": "

The connection endpoint.

" + } + }, + "AwsRedshiftClusterHsmStatus": { + "base": "

Information about whether an Amazon Redshift cluster finished applying any hardware changes to security module (HSM) settings that were specified in a modify cluster command.

", + "refs": { + "AwsRedshiftClusterDetails$HsmStatus": "

Information about whether the Amazon Redshift cluster finished applying any changes to hardware security module (HSM) settings that were specified in a modify cluster command.

" + } + }, + "AwsRedshiftClusterIamRole": { + "base": "

An IAM role that the cluster can use to access other AWS services.

", + "refs": { + "AwsRedshiftClusterIamRoles$member": null + } + }, + "AwsRedshiftClusterIamRoles": { + "base": null, + "refs": { + "AwsRedshiftClusterDetails$IamRoles": "

A list of IAM roles that the cluster can use to access other AWS services.

" + } + }, + "AwsRedshiftClusterPendingModifiedValues": { + "base": "

Changes to the Amazon Redshift cluster that are currently pending.

", + "refs": { + "AwsRedshiftClusterDetails$PendingModifiedValues": "

A list of changes to the cluster that are currently pending.

" + } + }, + "AwsRedshiftClusterResizeInfo": { + "base": "

Information about the resize operation for the cluster.

", + "refs": { + "AwsRedshiftClusterDetails$ResizeInfo": "

Information about the resize operation for the cluster.

" + } + }, + "AwsRedshiftClusterRestoreStatus": { + "base": "

Information about the status of a cluster restore action. It only applies if the cluster was created by restoring a snapshot.

", + "refs": { + "AwsRedshiftClusterDetails$RestoreStatus": "

Information about the status of a cluster restore action. Only applies to a cluster that was created by restoring a snapshot.

" + } + }, + "AwsRedshiftClusterVpcSecurityGroup": { + "base": "

A VPC security group that the cluster belongs to, if the cluster is in a VPC.

", + "refs": { + "AwsRedshiftClusterVpcSecurityGroups$member": null + } + }, + "AwsRedshiftClusterVpcSecurityGroups": { + "base": null, + "refs": { + "AwsRedshiftClusterDetails$VpcSecurityGroups": "

The list of VPC security groups that the cluster belongs to, if the cluster is in a VPC.

" + } + }, "AwsS3BucketDetails": { "base": "

The details of an Amazon S3 bucket.

", "refs": { @@ -875,10 +1404,10 @@ } }, "AwsSecurityFindingFilters": { - "base": "

A collection of attributes that are applied to all active Security Hub-aggregated findings and that result in a subset of findings that are included in this insight.

", + "base": "

A collection of attributes that are applied to all active Security Hub-aggregated findings and that result in a subset of findings that are included in this insight.

You can filter by up to 10 finding attributes. For each attribute, you can provide up to 20 filter values.

", "refs": { "CreateInsightRequest$Filters": "

One or more attributes used to filter the findings included in the insight. The insight only includes findings that match the criteria defined in the filters.

", - "GetFindingsRequest$Filters": "

The finding attributes used to define a condition to filter the returned findings.

Note that in the available filter fields, WorkflowState is deprecated. To search for a finding based on its workflow status, use WorkflowStatus.

", + "GetFindingsRequest$Filters": "

The finding attributes used to define a condition to filter the returned findings.

You can filter by up to 10 finding attributes. For each attribute, you can provide up to 20 filter values.

Note that in the available filter fields, WorkflowState is deprecated. To search for a finding based on its workflow status, use WorkflowStatus.

", "Insight$Filters": "

One or more attributes used to filter the findings included in the insight. The insight only includes findings that match the criteria defined in the filters.

", "UpdateFindingsRequest$Filters": "

A collection of attributes that specify which findings you want to update.

", "UpdateInsightRequest$Filters": "

The updated filters that define this insight.

" @@ -1002,9 +1531,27 @@ "Boolean": { "base": null, "refs": { + "AwsApiGatewayCanarySettings$UseStageCache": "

Indicates whether the canary deployment uses the stage cache.

", + "AwsApiGatewayMethodSettings$MetricsEnabled": "

Indicates whether CloudWatch metrics are enabled for the method.

", + "AwsApiGatewayMethodSettings$DataTraceEnabled": "

Indicates whether data trace logging is enabled for the method. Data trace logging affects the log entries that are pushed to CloudWatch Logs.

", + "AwsApiGatewayMethodSettings$CachingEnabled": "

Indicates whether responses are cached and returned for requests. For responses to be cached, a cache cluster must be enabled on the stage.

", + "AwsApiGatewayMethodSettings$CacheDataEncrypted": "

Indicates whether the cached responses are encrypted.

", + "AwsApiGatewayMethodSettings$RequireAuthorizationForCacheControl": "

Indicates whether authorization is required for a cache invalidation request.

", + "AwsApiGatewayStageDetails$CacheClusterEnabled": "

Indicates whether a cache cluster is enabled for the stage.

", + "AwsApiGatewayStageDetails$TracingEnabled": "

Indicates whether active tracing with AWS X-Ray is enabled for the stage.

", + "AwsApiGatewayV2RouteSettings$DetailedMetricsEnabled": "

Indicates whether detailed metrics are enabled.

", + "AwsApiGatewayV2RouteSettings$DataTraceEnabled": "

Indicates whether data trace logging is enabled. Data trace logging affects the log entries that are pushed to CloudWatch Logs. Supported only for WebSocket APIs.

", + "AwsApiGatewayV2StageDetails$AutoDeploy": "

Indicates whether updates to an API automatically trigger a new deployment.

", + "AwsApiGatewayV2StageDetails$ApiGatewayManaged": "

Indicates whether the stage is managed by API Gateway.

", "AwsCloudFrontDistributionLogging$Enabled": "

With this field, you can enable or disable the selected distribution.

", "AwsCloudFrontDistributionLogging$IncludeCookies": "

Specifies whether you want CloudFront to include cookies in access logs.

", + "AwsCloudTrailTrailDetails$HasCustomEventSelectors": "

Indicates whether the trail has custom event selectors.

", + "AwsCloudTrailTrailDetails$IncludeGlobalServiceEvents": "

Indicates whether the trail publishes events from global services such as IAM to the log files.

", + "AwsCloudTrailTrailDetails$IsMultiRegionTrail": "

Indicates whether the trail applies only to the current Region or to all Regions.

", + "AwsCloudTrailTrailDetails$IsOrganizationTrail": "

Whether the trail is created for all accounts in an organization in AWS Organizations, or only for the current AWS account.

", + "AwsCloudTrailTrailDetails$LogFileValidationEnabled": "

Indicates whether CloudTrail log file validation is enabled.

", "AwsCodeBuildProjectSource$InsecureSsl": "

Whether to ignore SSL warnings while connecting to the project source code.

", + "AwsCorsConfiguration$AllowCredentials": "

Indicates whether the CORS request includes credentials.

", "AwsDynamoDbTableGlobalSecondaryIndex$Backfilling": "

Whether the index is currently backfilling.

", "AwsDynamoDbTableRestoreSummary$RestoreInProgress": "

Whether a restore is currently in progress.

", "AwsDynamoDbTableStreamSpecification$StreamEnabled": "

Indicates whether DynamoDB Streams is enabled on the table.

", @@ -1015,6 +1562,10 @@ "AwsElasticsearchDomainDomainEndpointOptions$EnforceHTTPS": "

Whether to require that all traffic to the domain arrive over HTTPS.

", "AwsElasticsearchDomainEncryptionAtRestOptions$Enabled": "

Whether encryption at rest is enabled.

", "AwsElasticsearchDomainNodeToNodeEncryptionOptions$Enabled": "

Whether node-to-node encryption is enabled.

", + "AwsElbLoadBalancerAccessLog$Enabled": "

Indicates whether access logs are enabled for the load balancer.

", + "AwsElbLoadBalancerConnectionDraining$Enabled": "

Indicates whether connection draining is enabled for the load balancer.

", + "AwsElbLoadBalancerCrossZoneLoadBalancing$Enabled": "

Indicates whether cross-zone load balancing is enabled for the load balancer.

", + "AwsIamAccessKeySessionContextAttributes$MfaAuthenticated": "

Indicates whether the session used multi-factor authentication (MFA).

", "AwsIamPolicyDetails$IsAttachable": "

Whether the policy can be attached to a user, group, or role.

", "AwsIamPolicyVersion$IsDefaultVersion": "

Whether the version is the default version.

", "AwsRdsDbClusterDetails$MultiAz": "

Whether the DB cluster has instances in multiple Availability Zones.

", @@ -1039,6 +1590,13 @@ "AwsRdsDbSnapshotDetails$Encrypted": "

", "AwsRdsDbSnapshotDetails$IamDatabaseAuthenticationEnabled": "

", "AwsRdsDbStatusInfo$Normal": "

Whether the read replica instance is operating normally.

", + "AwsRedshiftClusterDetails$AllowVersionUpgrade": "

Indicates whether major version upgrades are applied automatically to the cluster during the maintenance window.

", + "AwsRedshiftClusterDetails$Encrypted": "

Indicates whether the data in the cluster is encrypted at rest.

", + "AwsRedshiftClusterDetails$EnhancedVpcRouting": "

Indicates whether to create the cluster with enhanced VPC routing enabled.

", + "AwsRedshiftClusterDetails$PubliclyAccessible": "

Whether the cluster can be accessed from a public network.

", + "AwsRedshiftClusterPendingModifiedValues$EnhancedVpcRouting": "

Indicates whether to create the cluster with enhanced VPC routing enabled.

", + "AwsRedshiftClusterPendingModifiedValues$PubliclyAccessible": "

The pending or in-progress change to whether the cluster can be connected to from the public network.

", + "AwsRedshiftClusterResizeInfo$AllowCancelResize": "

Indicates whether the resize operation can be canceled.

", "AwsSecretsManagerSecretDetails$RotationOccurredWithinFrequency": "

Whether the rotation occurred within the specified rotation frequency.

", "AwsSecretsManagerSecretDetails$RotationEnabled": "

Whether rotation is enabled.

", "AwsSecretsManagerSecretDetails$Deleted": "

Whether the secret is deleted.

", @@ -1311,7 +1869,11 @@ "Double": { "base": null, "refs": { + "AwsApiGatewayCanarySettings$PercentTraffic": "

The percentage of traffic that is diverted to a canary deployment.

", + "AwsApiGatewayMethodSettings$ThrottlingRateLimit": "

The throttling rate limit for the method.

", + "AwsApiGatewayV2RouteSettings$ThrottlingRateLimit": "

The throttling rate limit.

", "AwsKmsKeyDetails$CreationDate": "

Indicates when the CMK was created.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", + "AwsRedshiftClusterRestoreStatus$CurrentRestoreRateInMegaBytesPerSecond": "

The number of megabytes per second being transferred from the backup storage. Returns the average rate for a completed backup.

This field is only updated when you restore to DC2 and DS2 node types.

", "Cvss$BaseScore": "

The base CVSS score.

", "NumberFilter$Gte": "

The greater-than-equal condition to be applied to a single field when querying for findings.

", "NumberFilter$Lte": "

The less-than-equal condition to be applied to a single field when querying for findings.

", @@ -1343,6 +1905,9 @@ "FieldMap": { "base": null, "refs": { + "AwsApiGatewayCanarySettings$StageVariableOverrides": "

Stage variables that are overridden in the canary release deployment. The variables include new stage variables that are introduced in the canary.

Each variable is represented as a string-to-string map between the stage variable name and the variable value.

", + "AwsApiGatewayStageDetails$Variables": "

A map that defines the stage variables for the stage.

Variable names can have alphanumeric and underscore characters.

Variable values can contain the following characters:

  • Uppercase and lowercase letters

  • Numbers

  • Special characters -._~:/?#&=,

", + "AwsApiGatewayV2StageDetails$StageVariables": "

A map that defines the stage variables for the stage.

Variable names can have alphanumeric and underscore characters.

Variable values can contain the following characters:

  • Uppercase and lowercase letters

  • Numbers

  • Special characters -._~:/?#&=,

", "AwsElasticsearchDomainDetails$Endpoints": "

The key-value pair that exists if the Amazon ES domain uses VPC endpoints.

", "AwsLambdaFunctionEnvironment$Variables": "

Environment variable key-value pairs.

", "AwsSecurityFinding$ProductFields": "

A data type where security-findings providers can include additional solution-specific details that aren't part of the defined AwsSecurityFinding format.

", @@ -1467,8 +2032,15 @@ "Integer": { "base": null, "refs": { + "AwsApiGatewayMethodSettings$ThrottlingBurstLimit": "

The throttling burst limit for the method.

", + "AwsApiGatewayMethodSettings$CacheTtlInSeconds": "

Specifies the time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response is cached.

", + "AwsApiGatewayRestApiDetails$MinimumCompressionSize": "

The minimum size in bytes of a payload before compression is enabled.

If null, then compression is disabled.

If 0, then all payloads are compressed.

", + "AwsApiGatewayV2RouteSettings$ThrottlingBurstLimit": "

The throttling burst limit.

", "AwsAutoScalingAutoScalingGroupDetails$HealthCheckGracePeriod": "

The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before it checks the health status of an EC2 instance that has come into service.

", + "AwsCloudFrontDistributionOriginGroupFailoverStatusCodes$Quantity": "

The number of status codes that can cause a failover.

", + "AwsCloudFrontDistributionOriginGroupFailoverStatusCodesItemList$member": null, "AwsCodeBuildProjectSource$GitCloneDepth": "

Information about the Git clone depth for the build project.

", + "AwsCorsConfiguration$MaxAge": "

The number of seconds for which the browser caches preflight request results.

", "AwsDynamoDbTableDetails$ItemCount": "

The number of items in the table.

", "AwsDynamoDbTableGlobalSecondaryIndex$ItemCount": "

The number of items in the index.

", "AwsDynamoDbTableProvisionedThroughput$NumberOfDecreasesToday": "

The number of times during the current UTC calendar day that the provisioned throughput was decreased.

", @@ -1479,6 +2051,16 @@ "AwsEc2SecurityGroupIpPermission$FromPort": "

The start of the port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number.

A value of -1 indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 types, you must specify all codes.

", "AwsEc2SecurityGroupIpPermission$ToPort": "

The end of the port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code.

A value of -1 indicates all ICMP/ICMPv6 codes. If you specify all ICMP/ICMPv6 types, you must specify all codes.

", "AwsEc2VolumeDetails$Size": "

The size of the volume, in GiBs.

", + "AwsElbLoadBalancerAccessLog$EmitInterval": "

The interval in minutes for publishing the access logs.

You can publish access logs either every 5 minutes or every 60 minutes.

", + "AwsElbLoadBalancerBackendServerDescription$InstancePort": "

The port on which the EC2 instance is listening.

", + "AwsElbLoadBalancerConnectionDraining$Timeout": "

The maximum time, in seconds, to keep the existing connections open before deregistering the instances.

", + "AwsElbLoadBalancerConnectionSettings$IdleTimeout": "

The time, in seconds, that the connection can be idle (no data is sent over the connection) before it is closed by the load balancer.

", + "AwsElbLoadBalancerHealthCheck$HealthyThreshold": "

The number of consecutive health check successes required before the instance is moved to the Healthy state.

", + "AwsElbLoadBalancerHealthCheck$Interval": "

The approximate interval, in seconds, between health checks of an individual instance.

", + "AwsElbLoadBalancerHealthCheck$Timeout": "

The amount of time, in seconds, during which no response means a failed health check.

", + "AwsElbLoadBalancerHealthCheck$UnhealthyThreshold": "

The number of consecutive health check failures that must occur before the instance is moved to the Unhealthy state.

", + "AwsElbLoadBalancerListener$InstancePort": "

The port on which the instance is listening.

", + "AwsElbLoadBalancerListener$LoadBalancerPort": "

The port on which the load balancer is listening.

On EC2-VPC, you can specify any port from the range 1-65535.

On EC2-Classic, you can specify any port from the following list: 25, 80, 443, 465, 587, 1024-65535.

", "AwsIamPolicyDetails$AttachmentCount": "

The number of users, groups, and roles that the policy is attached to.

", "AwsIamPolicyDetails$PermissionsBoundaryUsageCount": "

The number of users and roles that use the policy to set the permissions boundary.

", "AwsIamRoleDetails$MaxSessionDuration": "

The maximum session duration (in seconds) that you want to set for the specified role.

", @@ -1509,6 +2091,14 @@ "AwsRdsDbSnapshotDetails$Port": "

", "AwsRdsDbSnapshotDetails$Iops": "

", "AwsRdsDbSnapshotDetails$PercentProgress": "

", + "AwsRedshiftClusterClusterSnapshotCopyStatus$ManualSnapshotRetentionPeriod": "

The number of days that manual snapshots are retained in the destination region after they are copied from a source region.

If the value is -1, then the manual snapshot is retained indefinitely.

Valid values: Either -1 or an integer between 1 and 3,653

", + "AwsRedshiftClusterClusterSnapshotCopyStatus$RetentionPeriod": "

The number of days to retain automated snapshots in the destination Region after they are copied from a source Region.

", + "AwsRedshiftClusterDetails$AutomatedSnapshotRetentionPeriod": "

The number of days that automatic cluster snapshots are retained.

", + "AwsRedshiftClusterDetails$ManualSnapshotRetentionPeriod": "

The default number of days to retain a manual snapshot.

If the value is -1, the snapshot is retained indefinitely.

This setting doesn't change the retention period of existing snapshots.

Valid values: Either -1 or an integer between 1 and 3,653

", + "AwsRedshiftClusterDetails$NumberOfNodes": "

The number of compute nodes in the cluster.

", + "AwsRedshiftClusterEndpoint$Port": "

The port that the database engine listens on.

", + "AwsRedshiftClusterPendingModifiedValues$AutomatedSnapshotRetentionPeriod": "

The pending or in-progress change to the automated snapshot retention period.

", + "AwsRedshiftClusterPendingModifiedValues$NumberOfNodes": "

The pending or in-progress change to the number of nodes in the cluster.

", "AwsSecretsManagerSecretRotationRules$AutomaticallyAfterDays": "

The number of days after the previous rotation to rotate the secret.

", "AwsSecurityFinding$Confidence": "

A finding's confidence. Confidence is defined as the likelihood that a finding accurately identifies the behavior or issue that it was intended to identify.

Confidence is scored on a 0-100 basis using a ratio scale, where 0 means zero percent confidence and 100 means 100 percent confidence.

", "AwsSecurityFinding$Criticality": "

The level of importance assigned to the resources associated with the finding.

A score of 0 means that the underlying resources have no criticality, and a score of 100 is reserved for the most critical resources.

", @@ -1526,7 +2116,7 @@ "PatchSummary$FailedCount": "

The number of patches from the compliance standard that failed to install.

", "PatchSummary$InstalledOtherCount": "

The number of installed patches that are not part of the compliance standard.

", "PatchSummary$InstalledRejectedCount": "

The number of patches that are installed but are also on a list of patches that the customer rejected.

", - "PatchSummary$InstalledPendingReboot": "

The number of patches that were installed since the last time the instance was rebooted.

", + "PatchSummary$InstalledPendingReboot": "

The number of patches that were applied, but that require the instance to be rebooted in order to be marked as installed.

", "PortRange$Begin": "

The first port in the port range.

", "PortRange$End": "

The last port in the port range.

", "ProcessDetails$Pid": "

The process ID.

", @@ -1676,6 +2266,16 @@ "AwsElbv2LoadBalancerDetails$State": "

The state of the load balancer.

" } }, + "Long": { + "base": null, + "refs": { + "AwsElbLbCookieStickinessPolicy$CookieExpirationPeriod": "

The amount of time, in seconds, after which the cookie is considered stale. If an expiration period is not specified, the stickiness session lasts for the duration of the browser session.

", + "AwsRedshiftClusterRestoreStatus$ElapsedTimeInSeconds": "

The amount of time an in-progress restore has been running, or the amount of time it took a completed restore to finish.

This field is only updated when you restore to DC2 and DS2 node types.

", + "AwsRedshiftClusterRestoreStatus$EstimatedTimeToCompletionInSeconds": "

The estimate of the time remaining before the restore is complete. Returns 0 for a completed restore.

This field is only updated when you restore to DC2 and DS2 node types.

", + "AwsRedshiftClusterRestoreStatus$ProgressInMegaBytes": "

The number of megabytes that were transferred from snapshot storage.

This field is only updated when you restore to DC2 and DS2 node types.

", + "AwsRedshiftClusterRestoreStatus$SnapshotSizeInMegaBytes": "

The size of the set of snapshot data that was used to restore the cluster.

This field is only updated when you restore to DC2 and DS2 node types.

" + } + }, "Malware": { "base": "

A list of malware related to a finding.

", "refs": { @@ -1825,9 +2425,81 @@ "ArnList$member": null, "AvailabilityZone$ZoneName": "

The name of the Availability Zone.

", "AvailabilityZone$SubnetId": "

The ID of the subnet. You can specify one subnet per Availability Zone.

", + "AwsApiGatewayAccessLogSettings$Format": "

A single-line format of the access logs of data, as specified by selected $context variables. The format must include at least $context.requestId.

", + "AwsApiGatewayAccessLogSettings$DestinationArn": "

The ARN of the CloudWatch Logs log group that receives the access logs.

", + "AwsApiGatewayCanarySettings$DeploymentId": "

The deployment identifier for the canary deployment.

", + "AwsApiGatewayMethodSettings$LoggingLevel": "

The logging level for this method. The logging level affects the log entries that are pushed to CloudWatch Logs.

If the logging level is ERROR, then the logs only include error-level entries.

If the logging level is INFO, then the logs include both ERROR events and extra informational events.

Valid values: OFF | ERROR | INFO

", + "AwsApiGatewayMethodSettings$UnauthorizedCacheControlHeaderStrategy": "

Indicates how to handle unauthorized requests for cache invalidation.

Valid values: FAIL_WITH_403 | SUCCEED_WITH_RESPONSE_HEADER | SUCCEED_WITHOUT_RESPONSE_HEADER

", + "AwsApiGatewayMethodSettings$HttpMethod": "

The HTTP method. You can use an asterisk (*) as a wildcard to apply method settings to multiple methods.

", + "AwsApiGatewayMethodSettings$ResourcePath": "

The resource path for this method. Forward slashes (/) are encoded as ~1 . The initial slash must include a forward slash.

For example, the path value /resource/subresource must be encoded as /~1resource~1subresource.

To specify the root path, use only a slash (/). You can use an asterisk (*) as a wildcard to apply method settings to multiple methods.

", + "AwsApiGatewayRestApiDetails$Id": "

The identifier of the REST API.

", + "AwsApiGatewayRestApiDetails$Name": "

The name of the REST API.

", + "AwsApiGatewayRestApiDetails$Description": "

A description of the REST API.

", + "AwsApiGatewayRestApiDetails$CreatedDate": "

Indicates when the API was created.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", + "AwsApiGatewayRestApiDetails$Version": "

The version identifier for the REST API.

", + "AwsApiGatewayRestApiDetails$ApiKeySource": "

The source of the API key for metering requests according to a usage plan.

HEADER indicates whether to read the API key from the X-API-Key header of a request.

AUTHORIZER indicates whether to read the API key from the UsageIdentifierKey from a custom authorizer.

", + "AwsApiGatewayStageDetails$DeploymentId": "

The identifier of the deployment that the stage points to.

", + "AwsApiGatewayStageDetails$ClientCertificateId": "

The identifier of the client certificate for the stage.

", + "AwsApiGatewayStageDetails$StageName": "

The name of the stage.

", + "AwsApiGatewayStageDetails$Description": "

A description of the stage.

", + "AwsApiGatewayStageDetails$CacheClusterSize": "

If a cache cluster is enabled, the size of the cache cluster.

", + "AwsApiGatewayStageDetails$CacheClusterStatus": "

If a cache cluster is enabled, the status of the cache cluster.

", + "AwsApiGatewayStageDetails$DocumentationVersion": "

The version of the API documentation that is associated with the stage.

", + "AwsApiGatewayStageDetails$CreatedDate": "

Indicates when the stage was created.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", + "AwsApiGatewayStageDetails$LastUpdatedDate": "

Indicates when the stage was most recently updated.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", + "AwsApiGatewayStageDetails$WebAclArn": "

The ARN of the web ACL associated with the stage.

", + "AwsApiGatewayV2ApiDetails$ApiEndpoint": "

The URI of the API.

Uses the format <api-id>.execute-api.<region>.amazonaws.com

The stage name is typically appended to the URI to form a complete path to a deployed API stage.

", + "AwsApiGatewayV2ApiDetails$ApiId": "

The identifier of the API.

", + "AwsApiGatewayV2ApiDetails$ApiKeySelectionExpression": "

An API key selection expression. Supported only for WebSocket APIs.

", + "AwsApiGatewayV2ApiDetails$CreatedDate": "

Indicates when the API was created.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", + "AwsApiGatewayV2ApiDetails$Description": "

A description of the API.

", + "AwsApiGatewayV2ApiDetails$Version": "

The version identifier for the API.

", + "AwsApiGatewayV2ApiDetails$Name": "

The name of the API.

", + "AwsApiGatewayV2ApiDetails$ProtocolType": "

The API protocol for the API.

Valid values: WEBSOCKET | HTTP

", + "AwsApiGatewayV2ApiDetails$RouteSelectionExpression": "

The route selection expression for the API.

For HTTP APIs, must be ${request.method} ${request.path}. This is the default value for HTTP APIs.

For WebSocket APIs, there is no default value.

", + "AwsApiGatewayV2RouteSettings$LoggingLevel": "

The logging level. The logging level affects the log entries that are pushed to CloudWatch Logs. Supported only for WebSocket APIs.

If the logging level is ERROR, then the logs only include error-level entries.

If the logging level is INFO, then the logs include both ERROR events and extra informational events.

Valid values: OFF | ERROR | INFO

", + "AwsApiGatewayV2StageDetails$CreatedDate": "

Indicates when the stage was created.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", + "AwsApiGatewayV2StageDetails$Description": "

The description of the stage.

", + "AwsApiGatewayV2StageDetails$DeploymentId": "

The identifier of the deployment that the stage is associated with.

", + "AwsApiGatewayV2StageDetails$LastUpdatedDate": "

Indicates when the stage was most recently updated.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", + "AwsApiGatewayV2StageDetails$StageName": "

The name of the stage.

", + "AwsApiGatewayV2StageDetails$LastDeploymentStatusMessage": "

The status of the last deployment of a stage. Supported only if the stage has automatic deployment enabled.

", "AwsAutoScalingAutoScalingGroupDetails$LaunchConfigurationName": "

The name of the launch configuration.

", "AwsAutoScalingAutoScalingGroupDetails$HealthCheckType": "

The service to use for the health checks.

", "AwsAutoScalingAutoScalingGroupDetails$CreatedTime": "

Indicates when the auto scaling group was created.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", + "AwsCertificateManagerCertificateDetails$CertificateAuthorityArn": "

The ARN of the private certificate authority (CA) that will be used to issue the certificate.

", + "AwsCertificateManagerCertificateDetails$CreatedAt": "

Indicates when the certificate was requested.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", + "AwsCertificateManagerCertificateDetails$DomainName": "

The fully qualified domain name (FQDN), such as www.example.com, that is secured by the certificate.

", + "AwsCertificateManagerCertificateDetails$FailureReason": "

For a failed certificate request, the reason for the failure.

Valid values: NO_AVAILABLE_CONTACTS | ADDITIONAL_VERIFICATION_REQUIRED | DOMAIN_NOT_ALLOWED | INVALID_PUBLIC_DOMAIN | DOMAIN_VALIDATION_DENIED | CAA_ERROR | PCA_LIMIT_EXCEEDED | PCA_INVALID_ARN | PCA_INVALID_STATE | PCA_REQUEST_FAILED | PCA_NAME_CONSTRAINTS_VALIDATION | PCA_RESOURCE_NOT_FOUND | PCA_INVALID_ARGS | PCA_INVALID_DURATION | PCA_ACCESS_DENIED | SLR_NOT_FOUND | OTHER

", + "AwsCertificateManagerCertificateDetails$ImportedAt": "

Indicates when the certificate was imported. Provided if the certificate type is IMPORTED.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", + "AwsCertificateManagerCertificateDetails$IssuedAt": "

Indicates when the certificate was issued. Provided if the certificate type is AMAZON_ISSUED.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", + "AwsCertificateManagerCertificateDetails$Issuer": "

The name of the certificate authority that issued and signed the certificate.

", + "AwsCertificateManagerCertificateDetails$KeyAlgorithm": "

The algorithm that was used to generate the public-private key pair.

Valid values: RSA_2048 | RSA_1024 | RSA_4096 | EC_prime256v1 | EC_secp384r1 | EC_secp521r1

", + "AwsCertificateManagerCertificateDetails$NotAfter": "

The time after which the certificate becomes invalid.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", + "AwsCertificateManagerCertificateDetails$NotBefore": "

The time before which the certificate is not valid.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", + "AwsCertificateManagerCertificateDetails$RenewalEligibility": "

Whether the certificate is eligible for renewal.

Valid values: ELIGIBLE | INELIGIBLE

", + "AwsCertificateManagerCertificateDetails$Serial": "

The serial number of the certificate.

", + "AwsCertificateManagerCertificateDetails$SignatureAlgorithm": "

The algorithm that was used to sign the certificate.

", + "AwsCertificateManagerCertificateDetails$Status": "

The status of the certificate.

Valid values: PENDING_VALIDATION | ISSUED | INACTIVE | EXPIRED | VALIDATION_TIMED_OUT | REVOKED | FAILED

", + "AwsCertificateManagerCertificateDetails$Subject": "

The name of the entity that is associated with the public key contained in the certificate.

", + "AwsCertificateManagerCertificateDetails$Type": "

The source of the certificate. For certificates that AWS Certificate Manager provides, Type is AMAZON_ISSUED. For certificates that are imported with ImportCertificate, Type is IMPORTED.

Valid values: IMPORTED | AMAZON_ISSUED | PRIVATE

", + "AwsCertificateManagerCertificateDomainValidationOption$DomainName": "

A fully qualified domain name (FQDN) in the certificate.

", + "AwsCertificateManagerCertificateDomainValidationOption$ValidationDomain": "

The domain name that AWS Certificate Manager uses to send domain validation emails.

", + "AwsCertificateManagerCertificateDomainValidationOption$ValidationMethod": "

The method used to validate the domain name.

", + "AwsCertificateManagerCertificateDomainValidationOption$ValidationStatus": "

The validation status of the domain name.

", + "AwsCertificateManagerCertificateExtendedKeyUsage$Name": "

The name of an extension value. Indicates the purpose for which the certificate public key can be used.

", + "AwsCertificateManagerCertificateExtendedKeyUsage$OId": "

An object identifier (OID) for the extension value.

The format is numbers separated by periods.

", + "AwsCertificateManagerCertificateKeyUsage$Name": "

The key usage extension name.

", + "AwsCertificateManagerCertificateOptions$CertificateTransparencyLoggingPreference": "

Whether to add the certificate to a transparency log.

Valid values: DISABLED | ENABLED

", + "AwsCertificateManagerCertificateRenewalSummary$RenewalStatus": "

The status of the AWS Certificate Manager managed renewal of the certificate.

Valid values: PENDING_AUTO_RENEWAL | PENDING_VALIDATION | SUCCESS | FAILED

", + "AwsCertificateManagerCertificateRenewalSummary$RenewalStatusReason": "

The reason that a renewal request was unsuccessful.

Valid values: NO_AVAILABLE_CONTACTS | ADDITIONAL_VERIFICATION_REQUIRED | DOMAIN_NOT_ALLOWED | INVALID_PUBLIC_DOMAIN | DOMAIN_VALIDATION_DENIED | CAA_ERROR | PCA_LIMIT_EXCEEDED | PCA_INVALID_ARN | PCA_INVALID_STATE | PCA_REQUEST_FAILED | PCA_NAME_CONSTRAINTS_VALIDATION | PCA_RESOURCE_NOT_FOUND | PCA_INVALID_ARGS | PCA_INVALID_DURATION | PCA_ACCESS_DENIED | SLR_NOT_FOUND | OTHER

", + "AwsCertificateManagerCertificateRenewalSummary$UpdatedAt": "

Indicates when the renewal summary was last updated.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", + "AwsCertificateManagerCertificateResourceRecord$Name": "

The name of the resource.

", + "AwsCertificateManagerCertificateResourceRecord$Type": "

The type of resource.

", + "AwsCertificateManagerCertificateResourceRecord$Value": "

The value of the resource.

", + "AwsCloudFrontDistributionCacheBehavior$ViewerProtocolPolicy": "

The protocol that viewers can use to access the files in an origin. You can specify the following options:

  • allow-all - Viewers can use HTTP or HTTPS.

  • redirect-to-https - CloudFront responds to HTTP requests with an HTTP status code of 301 (Moved Permanently) and the HTTPS URL. The viewer then uses the new URL to resubmit.

  • https-only - CloudFront responds to HTTP request with an HTTP status code of 403 (Forbidden).

", + "AwsCloudFrontDistributionDefaultCacheBehavior$ViewerProtocolPolicy": "

The protocol that viewers can use to access the files in an origin. You can specify the following options:

  • allow-all - Viewers can use HTTP or HTTPS.

  • redirect-to-https - CloudFront responds to HTTP requests with an HTTP status code of 301 (Moved Permanently) and the HTTPS URL. The viewer then uses the new URL to resubmit.

  • https-only - CloudFront responds to HTTP request with an HTTP status code of 403 (Forbidden).

", + "AwsCloudFrontDistributionDetails$DefaultRootObject": "

The object that CloudFront sends in response to requests from the origin (for example, index.html) when a viewer requests the root URL for the distribution (http://www.example.com) instead of an object in your distribution (http://www.example.com/product-description.html).

", "AwsCloudFrontDistributionDetails$DomainName": "

The domain name corresponding to the distribution.

", "AwsCloudFrontDistributionDetails$ETag": "

The entity tag is a hash of the object.

", "AwsCloudFrontDistributionDetails$LastModifiedTime": "

Indicates when that the distribution was last modified.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", @@ -1838,6 +2510,17 @@ "AwsCloudFrontDistributionOriginItem$DomainName": "

Amazon S3 origins: The DNS name of the Amazon S3 bucket from which you want CloudFront to get objects for this origin.

", "AwsCloudFrontDistributionOriginItem$Id": "

A unique identifier for the origin or origin group.

", "AwsCloudFrontDistributionOriginItem$OriginPath": "

An optional element that causes CloudFront to request your content from a directory in your Amazon S3 bucket or your custom origin.

", + "AwsCloudFrontDistributionOriginS3OriginConfig$OriginAccessIdentity": "

The CloudFront origin access identity to associate with the origin.

", + "AwsCloudTrailTrailDetails$CloudWatchLogsLogGroupArn": "

The ARN of the log group that CloudTrail logs are delivered to.

", + "AwsCloudTrailTrailDetails$CloudWatchLogsRoleArn": "

The ARN of the role that the CloudWatch Logs endpoint assumes when it writes to the log group.

", + "AwsCloudTrailTrailDetails$HomeRegion": "

The Region where the trail was created.

", + "AwsCloudTrailTrailDetails$KmsKeyId": "

The AWS KMS key ID to use to encrypt the logs.

", + "AwsCloudTrailTrailDetails$Name": "

The name of the trail.

", + "AwsCloudTrailTrailDetails$S3BucketName": "

The name of the S3 bucket where the log files are published.

", + "AwsCloudTrailTrailDetails$S3KeyPrefix": "

The S3 key prefix. The key prefix is added after the name of the S3 bucket where the log files are published.

", + "AwsCloudTrailTrailDetails$SnsTopicArn": "

The ARN of the SNS topic that is used for notifications of log file delivery.

", + "AwsCloudTrailTrailDetails$SnsTopicName": "

The name of the SNS topic that is used for notifications of log file delivery.

", + "AwsCloudTrailTrailDetails$TrailArn": "

The ARN of the trail.

", "AwsCodeBuildProjectDetails$EncryptionKey": "

The AWS Key Management Service (AWS KMS) customer master key (CMK) used to encrypt the build output artifacts.

You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, the CMK alias (using the format alias/alias-name).

", "AwsCodeBuildProjectDetails$Name": "

The name of the build project.

", "AwsCodeBuildProjectDetails$ServiceRole": "

The ARN of the IAM role that enables AWS CodeBuild to interact with dependent AWS services on behalf of the AWS account.

", @@ -1939,6 +2622,25 @@ "AwsElasticsearchDomainDomainEndpointOptions$TLSSecurityPolicy": "

The TLS security policy to apply to the HTTPS endpoint of the Elasticsearch domain.

Valid values:

  • Policy-Min-TLS-1-0-2019-07, which supports TLSv1.0 and higher

  • Policy-Min-TLS-1-2-2019-07, which only supports TLSv1.2

", "AwsElasticsearchDomainEncryptionAtRestOptions$KmsKeyId": "

The KMS key ID. Takes the form 1a2a3a4-1a2a-3a4a-5a6a-1a2a3a4a5a6a.

", "AwsElasticsearchDomainVPCOptions$VPCId": "

ID for the VPC.

", + "AwsElbAppCookieStickinessPolicy$CookieName": "

The name of the application cookie used for stickiness.

", + "AwsElbAppCookieStickinessPolicy$PolicyName": "

The mnemonic name for the policy being created. The name must be unique within the set of policies for the load balancer.

", + "AwsElbLbCookieStickinessPolicy$PolicyName": "

The name of the policy. The name must be unique within the set of policies for the load balancer.

", + "AwsElbLoadBalancerAccessLog$S3BucketName": "

The name of the S3 bucket where the access logs are stored.

", + "AwsElbLoadBalancerAccessLog$S3BucketPrefix": "

The logical hierarchy that was created for the S3 bucket.

If a prefix is not provided, the log is placed at the root level of the bucket.

", + "AwsElbLoadBalancerDetails$CanonicalHostedZoneName": "

The name of the Amazon Route 53 hosted zone for the load balancer.

", + "AwsElbLoadBalancerDetails$CanonicalHostedZoneNameID": "

The ID of the Amazon Route 53 hosted zone for the load balancer.

", + "AwsElbLoadBalancerDetails$CreatedTime": "

Indicates when the load balancer was created.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", + "AwsElbLoadBalancerDetails$DnsName": "

The DNS name of the load balancer.

", + "AwsElbLoadBalancerDetails$LoadBalancerName": "

The name of the load balancer.

", + "AwsElbLoadBalancerDetails$Scheme": "

The type of load balancer. Only provided if the load balancer is in a VPC.

If Scheme is internet-facing, the load balancer has a public DNS name that resolves to a public IP address.

If Scheme is internal, the load balancer has a public DNS name that resolves to a private IP address.

", + "AwsElbLoadBalancerDetails$VpcId": "

The identifier of the VPC for the load balancer.

", + "AwsElbLoadBalancerHealthCheck$Target": "

The instance that is being checked. The target specifies the protocol and port. The available protocols are TCP, SSL, HTTP, and HTTPS. The range of valid ports is 1 through 65535.

For the HTTP and HTTPS protocols, the target also specifies the ping path.

For the TCP protocol, the target is specified as TCP: <port> .

For the SSL protocol, the target is specified as SSL.<port> .

For the HTTP and HTTPS protocols, the target is specified as <protocol>:<port>/<path to ping> .

", + "AwsElbLoadBalancerInstance$InstanceId": "

The instance identifier.

", + "AwsElbLoadBalancerListener$InstanceProtocol": "

The protocol to use to route traffic to instances.

Valid values: HTTP | HTTPS | TCP | SSL

", + "AwsElbLoadBalancerListener$Protocol": "

The load balancer transport protocol to use for routing.

Valid values: HTTP | HTTPS | TCP | SSL

", + "AwsElbLoadBalancerListener$SslCertificateId": "

The ARN of the server certificate.

", + "AwsElbLoadBalancerSourceSecurityGroup$GroupName": "

The name of the security group.

", + "AwsElbLoadBalancerSourceSecurityGroup$OwnerAlias": "

The owner of the security group.

", "AwsElbv2LoadBalancerDetails$CanonicalHostedZoneId": "

The ID of the Amazon Route 53 hosted zone associated with the load balancer.

", "AwsElbv2LoadBalancerDetails$CreatedTime": "

Indicates when the load balancer was created.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", "AwsElbv2LoadBalancerDetails$DNSName": "

The public DNS name of the load balancer.

", @@ -1951,9 +2653,32 @@ "AwsIamAccessKeyDetails$PrincipalId": "

The ID of the principal associated with an access key.

", "AwsIamAccessKeyDetails$PrincipalType": "

The type of principal associated with an access key.

", "AwsIamAccessKeyDetails$PrincipalName": "

The name of the principal.

", + "AwsIamAccessKeyDetails$AccountId": "

The AWS account ID of the account for the key.

", + "AwsIamAccessKeyDetails$AccessKeyId": "

The identifier of the access key.

", + "AwsIamAccessKeySessionContextAttributes$CreationDate": "

Indicates when the session was created.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", + "AwsIamAccessKeySessionContextSessionIssuer$Type": "

The type of principal (user, role, or group) that created the session.

", + "AwsIamAccessKeySessionContextSessionIssuer$PrincipalId": "

The principal ID of the principal (user, role, or group) that created the session.

", + "AwsIamAccessKeySessionContextSessionIssuer$Arn": "

The ARN of the session.

", + "AwsIamAccessKeySessionContextSessionIssuer$AccountId": "

The identifier of the AWS account that created the session.

", + "AwsIamAccessKeySessionContextSessionIssuer$UserName": "

The name of the principal that created the session.

", "AwsIamAttachedManagedPolicy$PolicyName": "

The name of the policy.

", "AwsIamAttachedManagedPolicy$PolicyArn": "

The ARN of the policy.

", - "AwsIamPermissionsBoundary$PermissionsBoundaryArn": "

The ARN of the policy used to set the permissions boundary for the user.

", + "AwsIamGroupDetails$CreateDate": "

Indicates when the IAM group was created.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", + "AwsIamGroupDetails$GroupId": "

The identifier of the IAM group.

", + "AwsIamGroupDetails$GroupName": "

The name of the IAM group.

", + "AwsIamGroupDetails$Path": "

The path to the group.

", + "AwsIamGroupPolicy$PolicyName": "

The name of the policy.

", + "AwsIamInstanceProfile$Arn": "

The ARN of the instance profile.

", + "AwsIamInstanceProfile$CreateDate": "

Indicates when the instance profile was created.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", + "AwsIamInstanceProfile$InstanceProfileId": "

The identifier of the instance profile.

", + "AwsIamInstanceProfile$InstanceProfileName": "

The name of the instance profile.

", + "AwsIamInstanceProfile$Path": "

The path to the instance profile.

", + "AwsIamInstanceProfileRole$Arn": "

The ARN of the role.

", + "AwsIamInstanceProfileRole$CreateDate": "

Indicates when the role was created.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", + "AwsIamInstanceProfileRole$Path": "

The path to the role.

", + "AwsIamInstanceProfileRole$RoleId": "

The identifier of the role.

", + "AwsIamInstanceProfileRole$RoleName": "

The name of the role.

", + "AwsIamPermissionsBoundary$PermissionsBoundaryArn": "

The ARN of the policy used to set the permissions boundary.

", "AwsIamPermissionsBoundary$PermissionsBoundaryType": "

The usage type for the permissions boundary.

", "AwsIamPolicyDetails$CreateDate": "

When the policy was created.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", "AwsIamPolicyDetails$DefaultVersionId": "

The identifier of the default version of the policy.

", @@ -1968,6 +2693,7 @@ "AwsIamRoleDetails$RoleId": "

The stable and unique string identifying the role.

", "AwsIamRoleDetails$RoleName": "

The friendly name that identifies the role.

", "AwsIamRoleDetails$Path": "

The path to the role.

", + "AwsIamRolePolicy$PolicyName": "

The name of the policy.

", "AwsIamUserDetails$CreateDate": "

Indicates when the user was created.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", "AwsIamUserDetails$Path": "

The path to the user.

", "AwsIamUserDetails$UserId": "

The unique identifier for the user.

", @@ -2118,6 +2844,62 @@ "AwsRdsDbSubnetGroupSubnet$SubnetIdentifier": "

The identifier of a subnet in the subnet group.

", "AwsRdsDbSubnetGroupSubnet$SubnetStatus": "

The status of a subnet in the subnet group.

", "AwsRdsDbSubnetGroupSubnetAvailabilityZone$Name": "

The name of the Availability Zone for a subnet in the subnet group.

", + "AwsRedshiftClusterClusterNode$NodeRole": "

The role of the node. A node might be a leader node or a compute node.

", + "AwsRedshiftClusterClusterNode$PrivateIpAddress": "

The private IP address of the node.

", + "AwsRedshiftClusterClusterNode$PublicIpAddress": "

The public IP address of the node.

", + "AwsRedshiftClusterClusterParameterGroup$ParameterApplyStatus": "

The status of updates to the parameters.

", + "AwsRedshiftClusterClusterParameterGroup$ParameterGroupName": "

The name of the parameter group.

", + "AwsRedshiftClusterClusterParameterStatus$ParameterName": "

The name of the parameter.

", + "AwsRedshiftClusterClusterParameterStatus$ParameterApplyStatus": "

The status of the parameter. Indicates whether the parameter is in sync with the database, waiting for a cluster reboot, or encountered an error when it was applied.

Valid values: in-sync | pending-reboot | applying | invalid-parameter | apply-deferred | apply-error | unknown-error

", + "AwsRedshiftClusterClusterParameterStatus$ParameterApplyErrorDescription": "

The error that prevented the parameter from being applied to the database.

", + "AwsRedshiftClusterClusterSecurityGroup$ClusterSecurityGroupName": "

The name of the cluster security group.

", + "AwsRedshiftClusterClusterSecurityGroup$Status": "

The status of the cluster security group.

", + "AwsRedshiftClusterClusterSnapshotCopyStatus$DestinationRegion": "

The destination Region that snapshots are automatically copied to when cross-Region snapshot copy is enabled.

", + "AwsRedshiftClusterClusterSnapshotCopyStatus$SnapshotCopyGrantName": "

The name of the snapshot copy grant.

", + "AwsRedshiftClusterDeferredMaintenanceWindow$DeferMaintenanceEndTime": "

The end of the time window for which maintenance was deferred.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", + "AwsRedshiftClusterDeferredMaintenanceWindow$DeferMaintenanceIdentifier": "

The identifier of the maintenance window.

", + "AwsRedshiftClusterDeferredMaintenanceWindow$DeferMaintenanceStartTime": "

The start of the time window for which maintenance was deferred.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", + "AwsRedshiftClusterDetails$AvailabilityZone": "

The name of the Availability Zone in which the cluster is located.

", + "AwsRedshiftClusterDetails$ClusterAvailabilityStatus": "

The availability status of the cluster for queries. Possible values are the following:

  • Available - The cluster is available for queries.

  • Unavailable - The cluster is not available for queries.

  • Maintenance - The cluster is intermittently available for queries due to maintenance activities.

  • Modifying -The cluster is intermittently available for queries due to changes that modify the cluster.

  • Failed - The cluster failed and is not available for queries.

", + "AwsRedshiftClusterDetails$ClusterCreateTime": "

Indicates when the cluster was created.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", + "AwsRedshiftClusterDetails$ClusterIdentifier": "

The unique identifier of the cluster.

", + "AwsRedshiftClusterDetails$ClusterPublicKey": "

The public key for the cluster.

", + "AwsRedshiftClusterDetails$ClusterRevisionNumber": "

The specific revision number of the database in the cluster.

", + "AwsRedshiftClusterDetails$ClusterStatus": "

The current status of the cluster.

Valid values: available | available, prep-for-resize | available, resize-cleanup | cancelling-resize | creating | deleting | final-snapshot | hardware-failure | incompatible-hsm | incompatible-network | incompatible-parameters | incompatible-restore | modifying | paused | rebooting | renaming | resizing | rotating-keys | storage-full | updating-hsm

", + "AwsRedshiftClusterDetails$ClusterSubnetGroupName": "

The name of the subnet group that is associated with the cluster. This parameter is valid only when the cluster is in a VPC.

", + "AwsRedshiftClusterDetails$ClusterVersion": "

The version ID of the Amazon Redshift engine that runs on the cluster.

", + "AwsRedshiftClusterDetails$DBName": "

The name of the initial database that was created when the cluster was created.

The same name is returned for the life of the cluster.

If an initial database is not specified, a database named devdev is created by default.

", + "AwsRedshiftClusterDetails$ElasticResizeNumberOfNodeOptions": "

The number of nodes that you can use the elastic resize method to resize the cluster to.

", + "AwsRedshiftClusterDetails$ExpectedNextSnapshotScheduleTime": "

Indicates when the next snapshot is expected to be taken. The cluster must have a valid snapshot schedule and have backups enabled.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", + "AwsRedshiftClusterDetails$ExpectedNextSnapshotScheduleTimeStatus": "

The status of the next expected snapshot.

Valid values: OnTrack | Pending

", + "AwsRedshiftClusterDetails$KmsKeyId": "

The identifier of the AWS KMS encryption key that is used to encrypt data in the cluster.

", + "AwsRedshiftClusterDetails$MaintenanceTrackName": "

The name of the maintenance track for the cluster.

", + "AwsRedshiftClusterDetails$MasterUsername": "

The master user name for the cluster. This name is used to connect to the database that is specified in as the value of DBName.

", + "AwsRedshiftClusterDetails$NextMaintenanceWindowStartTime": "

Indicates the start of the next maintenance window.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", + "AwsRedshiftClusterDetails$NodeType": "

The node type for the nodes in the cluster.

", + "AwsRedshiftClusterDetails$PreferredMaintenanceWindow": "

The weekly time range, in Universal Coordinated Time (UTC), during which system maintenance can occur.

Format: <day>:HH:MM-<day>:HH:MM

For the day values, use mon | tue | wed | thu | fri | sat | sun

For example, sun:09:32-sun:10:02

", + "AwsRedshiftClusterDetails$SnapshotScheduleIdentifier": "

A unique identifier for the cluster snapshot schedule.

", + "AwsRedshiftClusterDetails$SnapshotScheduleState": "

The current state of the cluster snapshot schedule.

Valid values: MODIFYING | ACTIVE | FAILED

", + "AwsRedshiftClusterDetails$VpcId": "

The identifier of the VPC that the cluster is in, if the cluster is in a VPC.

", + "AwsRedshiftClusterElasticIpStatus$ElasticIp": "

The elastic IP address for the cluster.

", + "AwsRedshiftClusterElasticIpStatus$Status": "

The status of the elastic IP address.

", + "AwsRedshiftClusterEndpoint$Address": "

The DNS address of the cluster.

", + "AwsRedshiftClusterHsmStatus$HsmClientCertificateIdentifier": "

The name of the HSM client certificate that the Amazon Redshift cluster uses to retrieve the data encryption keys that are stored in an HSM.

", + "AwsRedshiftClusterHsmStatus$HsmConfigurationIdentifier": "

The name of the HSM configuration that contains the information that the Amazon Redshift cluster can use to retrieve and store keys in an HSM.

", + "AwsRedshiftClusterHsmStatus$Status": "

Indicates whether the Amazon Redshift cluster has finished applying any HSM settings changes specified in a modify cluster command.

Type: String

Valid values: active | applying

", + "AwsRedshiftClusterIamRole$ApplyStatus": "

The status of the IAM role's association with the cluster.

Valid values: in-sync | adding | removing

", + "AwsRedshiftClusterIamRole$IamRoleArn": "

The ARN of the IAM role.

", + "AwsRedshiftClusterPendingModifiedValues$ClusterIdentifier": "

The pending or in-progress change to the identifier for the cluster.

", + "AwsRedshiftClusterPendingModifiedValues$ClusterType": "

The pending or in-progress change to the cluster type.

", + "AwsRedshiftClusterPendingModifiedValues$ClusterVersion": "

The pending or in-progress change to the service version.

", + "AwsRedshiftClusterPendingModifiedValues$EncryptionType": "

The encryption type for a cluster.

", + "AwsRedshiftClusterPendingModifiedValues$MaintenanceTrackName": "

The name of the maintenance track that the cluster changes to during the next maintenance window.

", + "AwsRedshiftClusterPendingModifiedValues$MasterUserPassword": "

The pending or in-progress change to the master user password for the cluster.

", + "AwsRedshiftClusterPendingModifiedValues$NodeType": "

The pending or in-progress change to the cluster's node type.

", + "AwsRedshiftClusterResizeInfo$ResizeType": "

The type of resize operation.

Valid values: ClassicResize

", + "AwsRedshiftClusterRestoreStatus$Status": "

The status of the restore action.

Valid values: starting | restoring | completed | failed

", + "AwsRedshiftClusterVpcSecurityGroup$Status": "

The status of the VPC security group.

", + "AwsRedshiftClusterVpcSecurityGroup$VpcSecurityGroupId": "

The identifier of the VPC security group.

", "AwsS3BucketDetails$OwnerId": "

The canonical user ID of the owner of the S3 bucket.

", "AwsS3BucketDetails$OwnerName": "

The display name of the owner of the S3 bucket.

", "AwsS3BucketDetails$CreatedAt": "

Indicates when the S3 bucket was created.

Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time Format. The value cannot contain spaces. For example, 2020-03-22T13:22:13.933Z.

", @@ -2229,7 +3011,7 @@ "MapFilter$Value": "

The value for the key in the map filter. Filter values are case sensitive. For example, one of the values for a tag called Department might be Security. If you provide security as the filter value, then there is no match.

", "Member$Email": "

The email address of the member account.

", "Member$MasterId": "

The AWS account ID of the Security Hub master account associated with this member account.

", - "Member$MemberStatus": "

The status of the relationship between the member account and its master account.

", + "Member$MemberStatus": "

The status of the relationship between the member account and its master account.

The status can have one of the following values:

  • CREATED - Indicates that the master account added the member account, but has not yet invited the member account.

  • INVITED - Indicates that the master account invited the member account. The member account has not yet responded to the invitation.

  • ASSOCIATED - Indicates that the member account accepted the invitation.

  • REMOVED - Indicates that the master account disassociated the member account.

  • RESIGNED - Indicates that the member account disassociated themselves from the master account.

  • DELETED - Indicates that the master account deleted the member account.

", "Network$Protocol": "

The protocol of network-related information about a finding.

", "Network$SourceIpV4": "

The source IPv4 address of network-related information about a finding.

", "Network$SourceIpV6": "

The source IPv6 address of network-related information about a finding.

", @@ -2272,6 +3054,7 @@ "Resource$Type": "

The type of the resource that details are provided for. If possible, set Type to one of the supported resource types. For example, if the resource is an EC2 instance, then set Type to AwsEc2Instance.

If the resource does not match any of the provided types, then set Type to Other.

", "Resource$Id": "

The canonical identifier for the given resource type.

", "Resource$Region": "

The canonical AWS external Region name where this resource is located.

", + "Resource$ResourceRole": "

", "ResourceConflictException$Message": null, "ResourceConflictException$Code": null, "ResourceNotFoundException$Message": null, @@ -2331,8 +3114,14 @@ "NonEmptyStringList": { "base": null, "refs": { + "AwsApiGatewayEndpointConfiguration$Types": "

A list of endpoint types for the REST API.

For an edge-optimized API, the endpoint type is EDGE. For a Regional API, the endpoint type is REGIONAL. For a private API, the endpoint type is PRIVATE.

", + "AwsApiGatewayRestApiDetails$BinaryMediaTypes": "

The list of binary media types supported by the REST API.

", "AwsCodeBuildProjectVpcConfig$Subnets": "

A list of one or more subnet IDs in your Amazon VPC.

", "AwsCodeBuildProjectVpcConfig$SecurityGroupIds": "

A list of one or more security group IDs in your Amazon VPC.

", + "AwsCorsConfiguration$AllowOrigins": "

The allowed origins for CORS requests.

", + "AwsCorsConfiguration$ExposeHeaders": "

The exposed headers for CORS requests.

", + "AwsCorsConfiguration$AllowMethods": "

The allowed methods for CORS requests.

", + "AwsCorsConfiguration$AllowHeaders": "

The allowed headers for CORS requests.

", "AwsElasticsearchDomainVPCOptions$AvailabilityZones": "

The list of Availability Zones associated with the VPC subnets.

", "AwsElasticsearchDomainVPCOptions$SecurityGroupIds": "

The list of security group IDs associated with the VPC endpoints for the domain.

", "AwsElasticsearchDomainVPCOptions$SubnetIds": "

A list of subnet IDs associated with the VPC endpoints for the domain.

", @@ -2747,9 +3536,18 @@ "base": null, "refs": { "AwsAutoScalingAutoScalingGroupDetails$LoadBalancerNames": "

The list of load balancers associated with the group.

", + "AwsCertificateManagerCertificateDetails$InUseBy": "

The list of ARNs for the AWS resources that use the certificate.

", + "AwsCertificateManagerCertificateDetails$SubjectAlternativeNames": "

One or more domain names (subject alternative names) included in the certificate. This list contains the domain names that are bound to the public key that is contained in the certificate.

The subject alternative names include the canonical domain name (CN) of the certificate and additional domain names that can be used to connect to the website.

", + "AwsCertificateManagerCertificateDomainValidationOption$ValidationEmails": "

A list of email addresses that AWS Certificate Manager uses to send domain validation emails.

", "AwsDynamoDbTableProjection$NonKeyAttributes": "

The nonkey attributes that are projected into the index. For each attribute, provide the attribute name.

", "AwsEc2InstanceDetails$IpV4Addresses": "

The IPv4 addresses associated with the instance.

", "AwsEc2InstanceDetails$IpV6Addresses": "

The IPv6 addresses associated with the instance.

", + "AwsElbLoadBalancerBackendServerDescription$PolicyNames": "

The names of the policies that are enabled for the EC2 instance.

", + "AwsElbLoadBalancerDetails$AvailabilityZones": "

The list of Availability Zones for the load balancer.

", + "AwsElbLoadBalancerDetails$SecurityGroups": "

The security groups for the load balancer. Only provided if the load balancer is in a VPC.

", + "AwsElbLoadBalancerDetails$Subnets": "

The list of subnet identifiers for the load balancer.

", + "AwsElbLoadBalancerListenerDescription$PolicyNames": "

The policies enabled for the listener.

", + "AwsElbLoadBalancerPolicies$OtherPolicies": "

The policies other than the stickiness policies.

", "AwsIamUserDetails$GroupList": "

A list of IAM groups that the user belongs to.

", "AwsRdsDbClusterDetails$AvailabilityZones": "

A list of Availability Zones (AZs) where instances in the DB cluster can be created.

", "AwsRdsDbClusterDetails$CustomEndpoints": "

A list of custom endpoints for the DB cluster.

", @@ -2762,6 +3560,7 @@ "AwsRdsDbInstanceDetails$EnabledCloudWatchLogsExports": "

A list of log types that this DB instance is configured to export to CloudWatch Logs.

", "AwsRdsPendingCloudWatchLogsExports$LogTypesToEnable": "

A list of log types that are being enabled.

", "AwsRdsPendingCloudWatchLogsExports$LogTypesToDisable": "

A list of log types that are being disabled.

", + "AwsRedshiftClusterDetails$PendingActions": "

A list of cluster operations that are waiting to start.

", "NetworkPathComponentDetails$Address": "

The IP addresses of the destination.

", "Vulnerability$RelatedVulnerabilities": "

List of vulnerabilities that are related to this vulnerability.

", "Vulnerability$ReferenceUrls": "

A list of URLs that provide additional information about the vulnerability.

" diff --git a/models/endpoints/endpoints.json b/models/endpoints/endpoints.json index db097094f45..2ef8a570366 100644 --- a/models/endpoints/endpoints.json +++ b/models/endpoints/endpoints.json @@ -6358,6 +6358,18 @@ "eu-central-1" : { }, "eu-west-1" : { }, "eu-west-2" : { }, + "fips-us-east-1" : { + "credentialScope" : { + "region" : "us-east-1" + }, + "hostname" : "workspaces-fips.us-east-1.amazonaws.com" + }, + "fips-us-west-2" : { + "credentialScope" : { + "region" : "us-west-2" + }, + "hostname" : "workspaces-fips.us-west-2.amazonaws.com" + }, "sa-east-1" : { }, "us-east-1" : { }, "us-west-2" : { } @@ -6778,6 +6790,21 @@ "cn-northwest-1" : { } } }, + "iotevents" : { + "endpoints" : { + "cn-north-1" : { } + } + }, + "ioteventsdata" : { + "endpoints" : { + "cn-north-1" : { + "credentialScope" : { + "region" : "cn-north-1" + }, + "hostname" : "data.iotevents.cn-north-1.amazonaws.com.cn" + } + } + }, "iotsecuredtunneling" : { "endpoints" : { "cn-north-1" : { }, @@ -8544,6 +8571,12 @@ "us-gov-west-1" : { } } }, + "transfer" : { + "endpoints" : { + "us-gov-east-1" : { }, + "us-gov-west-1" : { } + } + }, "translate" : { "defaults" : { "protocols" : [ "https" ] @@ -8576,6 +8609,12 @@ }, "workspaces" : { "endpoints" : { + "fips-us-gov-west-1" : { + "credentialScope" : { + "region" : "us-gov-west-1" + }, + "hostname" : "workspaces-fips.us-gov-west-1.amazonaws.com" + }, "us-gov-west-1" : { } } }, diff --git a/private/model/api/api.go b/private/model/api/api.go index 9cace85b1f0..e44aaa9f132 100644 --- a/private/model/api/api.go +++ b/private/model/api/api.go @@ -65,6 +65,10 @@ type API struct { HasEndpointARN bool `json:"-"` + HasOutpostID bool `json:"-"` + + HasAccountIdWithARN bool `json:"-"` + WithGeneratedTypedErrors bool } @@ -332,7 +336,11 @@ func (a *API) APIGoCode() string { if a.HasEndpointARN { a.AddImport("fmt") - a.AddSDKImport("service", a.PackageName(), "internal", "arn") + if a.PackageName() == "s3" || a.PackageName() == "s3control" { + a.AddSDKImport("internal/s3shared/arn") + } else { + a.AddSDKImport("service", a.PackageName(), "internal", "arn") + } } var buf bytes.Buffer diff --git a/private/model/api/customization_passes.go b/private/model/api/customization_passes.go index c85d9d98117..2ea7bf6c0e8 100644 --- a/private/model/api/customization_passes.go +++ b/private/model/api/customization_passes.go @@ -198,15 +198,72 @@ func s3CustRemoveHeadObjectModeledErrors(a *API) { // S3 service operations with an AccountId need accessors to be generated for // them so the fields can be dynamically accessed without reflection. func s3ControlCustomizations(a *API) error { - for opName, op := range a.Operations { - // Add moving AccountId into the hostname instead of header. - if ref, ok := op.InputRef.Shape.MemberRefs["AccountId"]; ok { - if op.Endpoint != nil { - fmt.Fprintf(os.Stderr, "S3 Control, %s, model already defining endpoint trait, remove this customization.\n", opName) + for _, s := range a.Shapes { + // Generate a endpointARN method for the BucketName shape if this is used as an operation input + if s.UsedAsInput { + if s.ShapeName == "CreateBucketInput" || s.ShapeName == "ListRegionalBucketsInput" { + // For operations CreateBucketInput and ListRegionalBuckets the OutpostID shape + // needs to be decorated + var outpostIDMemberShape *ShapeRef + for memberName, ref := range s.MemberRefs { + if memberName != "OutpostId" || ref.Shape.Type != "string" { + continue + } + if outpostIDMemberShape != nil { + return fmt.Errorf("more then one OutpostID shape present on shape") + } + ref.OutpostIDMember = true + outpostIDMemberShape = ref + } + if outpostIDMemberShape != nil { + s.HasOutpostIDMember = true + a.HasOutpostID = true + } + continue + } + + // List of input shapes that use accesspoint names as arnable fields + accessPointNameArnables := map[string]struct{}{ + "GetAccessPointInput": {}, + "DeleteAccessPointInput": {}, + "PutAccessPointPolicy": {}, + "GetAccessPointPolicy": {}, + "DeleteAccessPointPolicy": {}, + } + + var endpointARNShape *ShapeRef + for _, ref := range s.MemberRefs { + // Operations that have AccessPointName field that takes in an ARN as input + if _, ok := accessPointNameArnables[s.ShapeName]; ok { + if ref.OrigShapeName != "AccessPointName" || ref.Shape.Type != "string" { + continue + } + } else if ref.OrigShapeName != "BucketName" || ref.Shape.Type != "string" { + // All other operations currently allow BucketName field to take in ARN. + // Exceptions for these are CreateBucket and ListRegionalBucket which use + // Outpost id and are handled above separately. + continue + } + + if endpointARNShape != nil { + return fmt.Errorf("more then one member present on shape takes arn as input") + } + ref.EndpointARN = true + endpointARNShape = ref } + if endpointARNShape != nil { + s.HasEndpointARNMember = true + a.HasEndpointARN = true - op.Endpoint = &EndpointTrait{HostPrefix: "{AccountId}."} - ref.HostLabel = true + for _, ref := range s.MemberRefs { + // check for account id customization + if ref.OrigShapeName == "AccountId" && ref.Shape.Type == "string" { + ref.AccountIDMemberWithARN = true + s.HasAccountIdMemberWithARN = true + a.HasAccountIdWithARN = true + } + } + } } } diff --git a/private/model/api/endpoint_arn.go b/private/model/api/endpoint_arn.go index f14ab043ace..48934b641e8 100644 --- a/private/model/api/endpoint_arn.go +++ b/private/model/api/endpoint_arn.go @@ -20,6 +20,17 @@ const endpointARNShapeTmplDef = ` } return arn.IsARN(*s.{{ $name }}) } + + // updateArnableField updates the value of the input field that + // takes an ARN as an input. This method is useful to backfill + // the parsed resource name from ARN into the input member. + func (s *{{ $.ShapeName }}) updateArnableField(v string) error { + if s.{{ $name }} == nil { + return fmt.Errorf("member {{ $name }} is nil") + } + s.{{ $name }} = aws.String(v) + return nil + } {{ end -}} {{ end }} {{ end }} @@ -29,3 +40,54 @@ var endpointARNShapeTmpl = template.Must( template.New("endpointARNShapeTmpl"). Parse(endpointARNShapeTmplDef), ) + +const outpostIDShapeTmplDef = ` +{{- define "outpostIDShapeTmpl" }} +{{ range $_, $name := $.MemberNames -}} + {{ $elem := index $.MemberRefs $name -}} + {{ if $elem.OutpostIDMember -}} + func (s *{{ $.ShapeName }}) getOutpostID() (string, error) { + if s.{{ $name }} == nil { + return "", fmt.Errorf("member {{ $name }} is nil") + } + return *s.{{ $name }}, nil + } + + func (s *{{ $.ShapeName }}) hasOutpostID() bool { + if s.{{ $name }} == nil { + return false + } + return true + } + {{ end -}} +{{ end }} +{{ end }} +` + +var outpostIDShapeTmpl = template.Must( + template.New("outpostIDShapeTmpl"). + Parse(outpostIDShapeTmplDef), +) + +const accountIDWithARNShapeTmplDef = ` +{{- define "accountIDWithARNShapeTmpl" }} +{{ range $_, $name := $.MemberNames -}} + {{ $elem := index $.MemberRefs $name -}} + {{ if $elem.AccountIDMemberWithARN -}} + func (s *{{ $.ShapeName }}) updateAccountID(accountId string) error { + if s.{{ $name }} == nil { + s.{{ $name }} = aws.String(accountId) + } else if *s.{{ $name }} != accountId { + return fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil + } + {{ end -}} +{{ end }} +{{ end }} +` + +var accountIDWithARNShapeTmpl = template.Must( + template.New("accountIDWithARNShapeTmpl"). + Parse(accountIDWithARNShapeTmplDef), +) diff --git a/private/model/api/operation.go b/private/model/api/operation.go index 561d99a6b79..0df3f52b932 100644 --- a/private/model/api/operation.go +++ b/private/model/api/operation.go @@ -143,6 +143,11 @@ func (o *Operation) GetSigner() string { return buf.String() } +// HasAccountIDMemberWithARN returns true if an account id member exists for an input shape that may take in an ARN. +func (o *Operation) HasAccountIDMemberWithARN() bool { + return o.InputRef.Shape.HasAccountIdMemberWithARN +} + // operationTmpl defines a template for rendering an API Operation var operationTmpl = template.Must(template.New("operation").Funcs(template.FuncMap{ "EnableStopOnSameToken": enableStopOnSameToken, @@ -208,6 +213,12 @@ func (c *{{ .API.StructName }}) {{ .ExportedName }}Request(` + {{ .GetSigner }} {{- end }} + {{- if .HasAccountIDMemberWithARN }} + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) + {{- end }} + {{- if .ShouldDiscardResponse -}} {{- $_ := .API.AddSDKImport "private/protocol" }} {{- $_ := .API.AddSDKImport "private/protocol" .API.ProtocolPackage }} diff --git a/private/model/api/shape.go b/private/model/api/shape.go index 3e96d60602c..5871643d8c1 100644 --- a/private/model/api/shape.go +++ b/private/model/api/shape.go @@ -63,6 +63,12 @@ type ShapeRef struct { // Flags whether the member reference is a endpoint ARN EndpointARN bool + + // Flags whether the member reference is a Outpost ID + OutpostIDMember bool + + // Flag whether the member reference is a Account ID when endpoint shape ARN is present + AccountIDMemberWithARN bool } // A Shape defines the definition of a shape type @@ -125,6 +131,12 @@ type Shape struct { // Flags that a member of the shape is an EndpointARN HasEndpointARNMember bool + // Flags that a member of the shape is an OutpostIDMember + HasOutpostIDMember bool + + // Flags that the shape has an account id member along with EndpointARN member + HasAccountIdMemberWithARN bool + // Indicates the Shape is used as an operation input UsedAsInput bool @@ -675,6 +687,18 @@ var structShapeTmpl = func() *template.Template { endpointARNShapeTmpl.Tree), ) + template.Must( + shapeTmpl.AddParseTree( + "outpostIDShapeTmpl", + outpostIDShapeTmpl.Tree), + ) + + template.Must( + shapeTmpl.AddParseTree( + "accountIDWithARNShapeTmpl", + accountIDWithARNShapeTmpl.Tree), + ) + return shapeTmpl }() @@ -801,6 +825,15 @@ type {{ $.ShapeName }} struct { {{- if $.HasEndpointARNMember }} {{ template "endpointARNShapeTmpl" $ }} {{- end }} + +{{- if $.HasOutpostIDMember }} + {{ template "outpostIDShapeTmpl" $ }} +{{- end }} + +{{- if $.HasAccountIdMemberWithARN }} + {{ template "accountIDWithARNShapeTmpl" $ }} +{{- end }} + ` var exceptionShapeMethodTmpl = template.Must( diff --git a/service/applicationautoscaling/api.go b/service/applicationautoscaling/api.go index b41235648e0..4cd69a330d3 100644 --- a/service/applicationautoscaling/api.go +++ b/service/applicationautoscaling/api.go @@ -1573,6 +1573,9 @@ type DeleteScalingPolicyInput struct { // * Amazon Keyspaces table - The resource type is table and the unique identifier // is the table name. Example: keyspace/mykeyspace/table/mytable. // + // * Amazon MSK cluster - The resource type and unique identifier are specified + // using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + // // ResourceId is a required field ResourceId *string `min:"1" type:"string" required:"true"` @@ -1628,6 +1631,9 @@ type DeleteScalingPolicyInput struct { // * cassandra:table:WriteCapacityUnits - The provisioned write capacity // for an Amazon Keyspaces table. // + // * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) + // for brokers in an Amazon MSK cluster. + // // ScalableDimension is a required field ScalableDimension *string `type:"string" required:"true" enum:"ScalableDimension"` @@ -1763,6 +1769,9 @@ type DeleteScheduledActionInput struct { // * Amazon Keyspaces table - The resource type is table and the unique identifier // is the table name. Example: keyspace/mykeyspace/table/mytable. // + // * Amazon MSK cluster - The resource type and unique identifier are specified + // using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + // // ResourceId is a required field ResourceId *string `min:"1" type:"string" required:"true"` @@ -1818,6 +1827,9 @@ type DeleteScheduledActionInput struct { // * cassandra:table:WriteCapacityUnits - The provisioned write capacity // for an Amazon Keyspaces table. // + // * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) + // for brokers in an Amazon MSK cluster. + // // ScalableDimension is a required field ScalableDimension *string `type:"string" required:"true" enum:"ScalableDimension"` @@ -1958,6 +1970,9 @@ type DeregisterScalableTargetInput struct { // * Amazon Keyspaces table - The resource type is table and the unique identifier // is the table name. Example: keyspace/mykeyspace/table/mytable. // + // * Amazon MSK cluster - The resource type and unique identifier are specified + // using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + // // ResourceId is a required field ResourceId *string `min:"1" type:"string" required:"true"` @@ -2013,6 +2028,9 @@ type DeregisterScalableTargetInput struct { // * cassandra:table:WriteCapacityUnits - The provisioned write capacity // for an Amazon Keyspaces table. // + // * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) + // for brokers in an Amazon MSK cluster. + // // ScalableDimension is a required field ScalableDimension *string `type:"string" required:"true" enum:"ScalableDimension"` @@ -2148,6 +2166,9 @@ type DescribeScalableTargetsInput struct { // // * Amazon Keyspaces table - The resource type is table and the unique identifier // is the table name. Example: keyspace/mykeyspace/table/mytable. + // + // * Amazon MSK cluster - The resource type and unique identifier are specified + // using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. ResourceIds []*string `type:"list"` // The scalable dimension associated with the scalable target. This string consists @@ -2202,6 +2223,9 @@ type DescribeScalableTargetsInput struct { // // * cassandra:table:WriteCapacityUnits - The provisioned write capacity // for an Amazon Keyspaces table. + // + // * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) + // for brokers in an Amazon MSK cluster. ScalableDimension *string `type:"string" enum:"ScalableDimension"` // The namespace of the AWS service that provides the resource. For a resource @@ -2358,6 +2382,9 @@ type DescribeScalingActivitiesInput struct { // // * Amazon Keyspaces table - The resource type is table and the unique identifier // is the table name. Example: keyspace/mykeyspace/table/mytable. + // + // * Amazon MSK cluster - The resource type and unique identifier are specified + // using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. ResourceId *string `min:"1" type:"string"` // The scalable dimension. This string consists of the service namespace, resource @@ -2412,6 +2439,9 @@ type DescribeScalingActivitiesInput struct { // // * cassandra:table:WriteCapacityUnits - The provisioned write capacity // for an Amazon Keyspaces table. + // + // * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) + // for brokers in an Amazon MSK cluster. ScalableDimension *string `type:"string" enum:"ScalableDimension"` // The namespace of the AWS service that provides the resource. For a resource @@ -2574,6 +2604,9 @@ type DescribeScalingPoliciesInput struct { // // * Amazon Keyspaces table - The resource type is table and the unique identifier // is the table name. Example: keyspace/mykeyspace/table/mytable. + // + // * Amazon MSK cluster - The resource type and unique identifier are specified + // using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. ResourceId *string `min:"1" type:"string"` // The scalable dimension. This string consists of the service namespace, resource @@ -2628,6 +2661,9 @@ type DescribeScalingPoliciesInput struct { // // * cassandra:table:WriteCapacityUnits - The provisioned write capacity // for an Amazon Keyspaces table. + // + // * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) + // for brokers in an Amazon MSK cluster. ScalableDimension *string `type:"string" enum:"ScalableDimension"` // The namespace of the AWS service that provides the resource. For a resource @@ -2793,6 +2829,9 @@ type DescribeScheduledActionsInput struct { // // * Amazon Keyspaces table - The resource type is table and the unique identifier // is the table name. Example: keyspace/mykeyspace/table/mytable. + // + // * Amazon MSK cluster - The resource type and unique identifier are specified + // using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. ResourceId *string `min:"1" type:"string"` // The scalable dimension. This string consists of the service namespace, resource @@ -2847,6 +2886,9 @@ type DescribeScheduledActionsInput struct { // // * cassandra:table:WriteCapacityUnits - The provisioned write capacity // for an Amazon Keyspaces table. + // + // * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) + // for brokers in an Amazon MSK cluster. ScalableDimension *string `type:"string" enum:"ScalableDimension"` // The names of the scheduled actions to describe. @@ -3392,8 +3434,8 @@ type PutScalingPolicyInput struct { // // TargetTrackingScaling—Not supported for Amazon EMR // - // StepScaling—Not supported for DynamoDB, Amazon Comprehend, Lambda, or Amazon - // Keyspaces (for Apache Cassandra). + // StepScaling—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon + // Keyspaces (for Apache Cassandra), or Amazon MSK. // // For more information, see Target Tracking Scaling Policies (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking.html) // and Step Scaling Policies (https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-step-scaling-policies.html) @@ -3446,6 +3488,9 @@ type PutScalingPolicyInput struct { // * Amazon Keyspaces table - The resource type is table and the unique identifier // is the table name. Example: keyspace/mykeyspace/table/mytable. // + // * Amazon MSK cluster - The resource type and unique identifier are specified + // using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + // // ResourceId is a required field ResourceId *string `min:"1" type:"string" required:"true"` @@ -3501,6 +3546,9 @@ type PutScalingPolicyInput struct { // * cassandra:table:WriteCapacityUnits - The provisioned write capacity // for an Amazon Keyspaces table. // + // * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) + // for brokers in an Amazon MSK cluster. + // // ScalableDimension is a required field ScalableDimension *string `type:"string" required:"true" enum:"ScalableDimension"` @@ -3700,6 +3748,9 @@ type PutScheduledActionInput struct { // * Amazon Keyspaces table - The resource type is table and the unique identifier // is the table name. Example: keyspace/mykeyspace/table/mytable. // + // * Amazon MSK cluster - The resource type and unique identifier are specified + // using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + // // ResourceId is a required field ResourceId *string `min:"1" type:"string" required:"true"` @@ -3755,6 +3806,9 @@ type PutScheduledActionInput struct { // * cassandra:table:WriteCapacityUnits - The provisioned write capacity // for an Amazon Keyspaces table. // + // * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) + // for brokers in an Amazon MSK cluster. + // // ScalableDimension is a required field ScalableDimension *string `type:"string" required:"true" enum:"ScalableDimension"` @@ -3979,6 +4033,9 @@ type RegisterScalableTargetInput struct { // * Amazon Keyspaces table - The resource type is table and the unique identifier // is the table name. Example: keyspace/mykeyspace/table/mytable. // + // * Amazon MSK cluster - The resource type and unique identifier are specified + // using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + // // ResourceId is a required field ResourceId *string `min:"1" type:"string" required:"true"` @@ -4043,6 +4100,9 @@ type RegisterScalableTargetInput struct { // * cassandra:table:WriteCapacityUnits - The provisioned write capacity // for an Amazon Keyspaces table. // + // * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) + // for brokers in an Amazon MSK cluster. + // // ScalableDimension is a required field ScalableDimension *string `type:"string" required:"true" enum:"ScalableDimension"` @@ -4229,6 +4289,9 @@ type ScalableTarget struct { // * Amazon Keyspaces table - The resource type is table and the unique identifier // is the table name. Example: keyspace/mykeyspace/table/mytable. // + // * Amazon MSK cluster - The resource type and unique identifier are specified + // using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + // // ResourceId is a required field ResourceId *string `min:"1" type:"string" required:"true"` @@ -4290,6 +4353,9 @@ type ScalableTarget struct { // * cassandra:table:WriteCapacityUnits - The provisioned write capacity // for an Amazon Keyspaces table. // + // * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) + // for brokers in an Amazon MSK cluster. + // // ScalableDimension is a required field ScalableDimension *string `type:"string" required:"true" enum:"ScalableDimension"` @@ -4478,6 +4544,9 @@ type ScalingActivity struct { // * Amazon Keyspaces table - The resource type is table and the unique identifier // is the table name. Example: keyspace/mykeyspace/table/mytable. // + // * Amazon MSK cluster - The resource type and unique identifier are specified + // using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + // // ResourceId is a required field ResourceId *string `min:"1" type:"string" required:"true"` @@ -4533,6 +4602,9 @@ type ScalingActivity struct { // * cassandra:table:WriteCapacityUnits - The provisioned write capacity // for an Amazon Keyspaces table. // + // * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) + // for brokers in an Amazon MSK cluster. + // // ScalableDimension is a required field ScalableDimension *string `type:"string" required:"true" enum:"ScalableDimension"` @@ -4632,6 +4704,10 @@ func (s *ScalingActivity) SetStatusMessage(v string) *ScalingActivity { } // Represents a scaling policy to use with Application Auto Scaling. +// +// For more information about configuring scaling policies for a specific service, +// see Getting started with Application Auto Scaling (https://docs.aws.amazon.com/autoscaling/application/userguide/getting-started.html) +// in the Application Auto Scaling User Guide. type ScalingPolicy struct { _ struct{} `type:"structure"` @@ -4704,6 +4780,9 @@ type ScalingPolicy struct { // * Amazon Keyspaces table - The resource type is table and the unique identifier // is the table name. Example: keyspace/mykeyspace/table/mytable. // + // * Amazon MSK cluster - The resource type and unique identifier are specified + // using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + // // ResourceId is a required field ResourceId *string `min:"1" type:"string" required:"true"` @@ -4759,6 +4838,9 @@ type ScalingPolicy struct { // * cassandra:table:WriteCapacityUnits - The provisioned write capacity // for an Amazon Keyspaces table. // + // * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) + // for brokers in an Amazon MSK cluster. + // // ScalableDimension is a required field ScalableDimension *string `type:"string" required:"true" enum:"ScalableDimension"` @@ -4902,6 +4984,9 @@ type ScheduledAction struct { // * Amazon Keyspaces table - The resource type is table and the unique identifier // is the table name. Example: keyspace/mykeyspace/table/mytable. // + // * Amazon MSK cluster - The resource type and unique identifier are specified + // using the cluster ARN. Example: arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5. + // // ResourceId is a required field ResourceId *string `min:"1" type:"string" required:"true"` @@ -4956,6 +5041,9 @@ type ScheduledAction struct { // // * cassandra:table:WriteCapacityUnits - The provisioned write capacity // for an Amazon Keyspaces table. + // + // * kafka:broker-storage:VolumeSize - The provisioned volume size (in GiB) + // for brokers in an Amazon MSK cluster. ScalableDimension *string `type:"string" enum:"ScalableDimension"` // The new minimum and maximum capacity. You can set both values or just one. @@ -5191,15 +5279,16 @@ type StepScalingPolicyConfiguration struct { // // With scale-out policies, the intention is to continuously (but not excessively) // scale out. After Application Auto Scaling successfully scales out using a - // step scaling policy, it starts to calculate the cooldown time. While the - // cooldown period is in effect, capacity added by the initiating scale-out - // activity is calculated as part of the desired capacity for the next scale-out - // activity. For example, when an alarm triggers a step scaling policy to increase - // the capacity by 2, the scaling activity completes successfully, and a cooldown - // period starts. If the alarm triggers again during the cooldown period but - // at a more aggressive step adjustment of 3, the previous increase of 2 is - // considered part of the current capacity. Therefore, only 1 is added to the - // capacity. + // step scaling policy, it starts to calculate the cooldown time. The scaling + // policy won't increase the desired capacity again unless either a larger scale + // out is triggered or the cooldown period ends. While the cooldown period is + // in effect, capacity added by the initiating scale-out activity is calculated + // as part of the desired capacity for the next scale-out activity. For example, + // when an alarm triggers a step scaling policy to increase the capacity by + // 2, the scaling activity completes successfully, and a cooldown period starts. + // If the alarm triggers again during the cooldown period but at a more aggressive + // step adjustment of 3, the previous increase of 2 is considered part of the + // current capacity. Therefore, only 1 is added to the capacity. // // With scale-in policies, the intention is to scale in conservatively to protect // your application’s availability, so scale-in activities are blocked until @@ -5236,6 +5325,8 @@ type StepScalingPolicyConfiguration struct { // * Lambda provisioned concurrency // // * Amazon Keyspaces tables + // + // * Amazon MSK cluster storage Cooldown *int64 `type:"integer"` // The aggregation type for the CloudWatch metrics. Valid values are Minimum, @@ -5426,6 +5517,8 @@ type TargetTrackingScalingPolicyConfiguration struct { // * Lambda provisioned concurrency // // * Amazon Keyspaces tables + // + // * Amazon MSK cluster storage ScaleInCooldown *int64 `type:"integer"` // The amount of time, in seconds, to wait for a previous scale-out activity @@ -5434,9 +5527,11 @@ type TargetTrackingScalingPolicyConfiguration struct { // With the scale-out cooldown period, the intention is to continuously (but // not excessively) scale out. After Application Auto Scaling successfully scales // out using a target tracking scaling policy, it starts to calculate the cooldown - // time. While the scale-out cooldown period is in effect, the capacity added - // by the initiating scale-out activity is calculated as part of the desired - // capacity for the next scale-out activity. + // time. The scaling policy won't increase the desired capacity again unless + // either a larger scale out is triggered or the cooldown period ends. While + // the cooldown period is in effect, the capacity added by the initiating scale-out + // activity is calculated as part of the desired capacity for the next scale-out + // activity. // // Application Auto Scaling provides a default value of 300 for the following // scalable targets: @@ -5466,6 +5561,8 @@ type TargetTrackingScalingPolicyConfiguration struct { // * Lambda provisioned concurrency // // * Amazon Keyspaces tables + // + // * Amazon MSK cluster storage ScaleOutCooldown *int64 `type:"integer"` // The target value for the metric. The range is 8.515920e-109 to 1.174271e+108 @@ -5717,6 +5814,9 @@ const ( // MetricTypeCassandraWriteCapacityUtilization is a MetricType enum value MetricTypeCassandraWriteCapacityUtilization = "CassandraWriteCapacityUtilization" + + // MetricTypeKafkaBrokerStorageUtilization is a MetricType enum value + MetricTypeKafkaBrokerStorageUtilization = "KafkaBrokerStorageUtilization" ) // MetricType_Values returns all elements of the MetricType enum @@ -5738,6 +5838,7 @@ func MetricType_Values() []string { MetricTypeLambdaProvisionedConcurrencyUtilization, MetricTypeCassandraReadCapacityUtilization, MetricTypeCassandraWriteCapacityUtilization, + MetricTypeKafkaBrokerStorageUtilization, } } @@ -5805,6 +5906,9 @@ const ( // ScalableDimensionCassandraTableWriteCapacityUnits is a ScalableDimension enum value ScalableDimensionCassandraTableWriteCapacityUnits = "cassandra:table:WriteCapacityUnits" + + // ScalableDimensionKafkaBrokerStorageVolumeSize is a ScalableDimension enum value + ScalableDimensionKafkaBrokerStorageVolumeSize = "kafka:broker-storage:VolumeSize" ) // ScalableDimension_Values returns all elements of the ScalableDimension enum @@ -5826,6 +5930,7 @@ func ScalableDimension_Values() []string { ScalableDimensionLambdaFunctionProvisionedConcurrency, ScalableDimensionCassandraTableReadCapacityUnits, ScalableDimensionCassandraTableWriteCapacityUnits, + ScalableDimensionKafkaBrokerStorageVolumeSize, } } @@ -5894,6 +5999,9 @@ const ( // ServiceNamespaceCassandra is a ServiceNamespace enum value ServiceNamespaceCassandra = "cassandra" + + // ServiceNamespaceKafka is a ServiceNamespace enum value + ServiceNamespaceKafka = "kafka" ) // ServiceNamespace_Values returns all elements of the ServiceNamespace enum @@ -5910,5 +6018,6 @@ func ServiceNamespace_Values() []string { ServiceNamespaceComprehend, ServiceNamespaceLambda, ServiceNamespaceCassandra, + ServiceNamespaceKafka, } } diff --git a/service/applicationautoscaling/doc.go b/service/applicationautoscaling/doc.go index 35e2ee25f01..0d163aeadf3 100644 --- a/service/applicationautoscaling/doc.go +++ b/service/applicationautoscaling/doc.go @@ -28,6 +28,8 @@ // // * Amazon Keyspaces (for Apache Cassandra) tables // +// * Amazon Managed Streaming for Apache Kafka cluster storage +// // API Summary // // The Application Auto Scaling service API includes three key sets of actions: diff --git a/service/datasync/api.go b/service/datasync/api.go index 8d610153944..2a4bda27ad4 100644 --- a/service/datasync/api.go +++ b/service/datasync/api.go @@ -158,7 +158,7 @@ func (c *DataSync) CreateAgentRequest(input *CreateAgentInput) (req *request.Req // // You can activate the agent in a VPC (virtual private cloud) or provide the // agent access to a VPC endpoint so you can run tasks without going over the -// public Internet. +// public internet. // // You can use an agent for more than one location. If a task uses multiple // agents, all of them need to have status AVAILABLE for the task to run. If @@ -495,7 +495,8 @@ func (c *DataSync) CreateLocationObjectStorageRequest(input *CreateLocationObjec // CreateLocationObjectStorage API operation for AWS DataSync. // -// Creates an endpoint for a self-managed object storage bucket. +// Creates an endpoint for a self-managed object storage bucket. For more information +// about self-managed object storage locations, see create-object-location. // // 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 @@ -579,13 +580,7 @@ func (c *DataSync) CreateLocationS3Request(input *CreateLocationS3Input) (req *r // // Creates an endpoint for an Amazon S3 bucket. // -// For AWS DataSync to access a destination S3 bucket, it needs an AWS Identity -// and Access Management (IAM) role that has the required permissions. You can -// set up the required permissions by creating an IAM policy that grants the -// required permissions and attaching the policy to the role. An example of -// such a policy is shown in the examples section. -// -// For more information, see https://docs.aws.amazon.com/datasync/latest/userguide/working-with-locations.html#create-s3-location +// For more information, see https://docs.aws.amazon.com/datasync/latest/userguide/create-locations-cli.html#create-location-s3-cli // in the AWS DataSync User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -767,7 +762,7 @@ func (c *DataSync) CreateTaskRequest(input *CreateTaskInput) (req *request.Reque // remains in the CREATING status for more than a few minutes, it means that // your agent might be having trouble mounting the source NFS file system. Check // the task's ErrorCode and ErrorDetail. Mount issues are often caused by either -// a misconfigured firewall or a mistyped NFS server host name. +// a misconfigured firewall or a mistyped NFS server hostname. // // 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 @@ -1433,7 +1428,8 @@ func (c *DataSync) DescribeLocationObjectStorageRequest(input *DescribeLocationO // DescribeLocationObjectStorage API operation for AWS DataSync. // -// Returns metadata about a self-managed object storage server location. +// Returns metadata about a self-managed object storage server location. For +// more information about self-managed object storage locations, see create-object-location. // // 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 @@ -3645,7 +3641,9 @@ type CreateLocationObjectStorageInput struct { _ struct{} `type:"structure"` // Optional. The access key is used if credentials are required to access the - // self-managed object storage server. + // self-managed object storage server. If your object storage requires a user + // name and password to authenticate, use AccessKey and SecretKey to provide + // the user name and password, respectively. AccessKey *string `min:"8" type:"string"` // The Amazon Resource Name (ARN) of the agents associated with the self-managed @@ -3661,7 +3659,9 @@ type CreateLocationObjectStorageInput struct { BucketName *string `min:"3" type:"string" required:"true"` // Optional. The secret key is used if credentials are required to access the - // self-managed object storage server. + // self-managed object storage server. If your object storage requires a user + // name and password to authenticate, use AccessKey and SecretKey to provide + // the user name and password, respectively. SecretKey *string `min:"8" type:"string" sensitive:"true"` // The name of the self-managed object storage server. This value is the IP @@ -3827,7 +3827,13 @@ func (s *CreateLocationObjectStorageOutput) SetLocationArn(v string) *CreateLoca type CreateLocationS3Input struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the Amazon S3 bucket. + // If you are using DataSync on an AWS Outpost, specify the Amazon Resource + // Names (ARNs) of the DataSync agents deployed on your AWS Outpost. For more + // information about launching a DataSync agent on an Amazon Outpost, see outposts-agent. + AgentArns []*string `min:"1" type:"list"` + + // The Amazon Resource Name (ARN) of the Amazon S3 bucket. If the bucket is + // on an AWS Outpost, this must be an access point ARN. // // S3BucketArn is a required field S3BucketArn *string `type:"string" required:"true"` @@ -3842,11 +3848,14 @@ type CreateLocationS3Input struct { S3Config *S3Config `type:"structure" required:"true"` // The Amazon S3 storage class that you want to store your files in when this - // location is used as a task destination. For more information about S3 storage - // classes, see Amazon S3 Storage Classes (https://aws.amazon.com/s3/storage-classes/) - // in the Amazon Simple Storage Service Developer Guide. Some storage classes - // have behaviors that can affect your S3 storage cost. For detailed information, - // see using-storage-classes. + // location is used as a task destination. For buckets in AWS Regions, the storage + // class defaults to Standard. For buckets on AWS Outposts, the storage class + // defaults to AWS S3 Outposts. + // + // For more information about S3 storage classes, see Amazon S3 Storage Classes + // (https://aws.amazon.com/s3/storage-classes/) in the Amazon Simple Storage + // Service Developer Guide. Some storage classes have behaviors that can affect + // your S3 storage cost. For detailed information, see using-storage-classes. S3StorageClass *string `type:"string" enum:"S3StorageClass"` // A subdirectory in the Amazon S3 bucket. This subdirectory in Amazon S3 is @@ -3871,6 +3880,9 @@ func (s CreateLocationS3Input) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *CreateLocationS3Input) Validate() error { invalidParams := request.ErrInvalidParams{Context: "CreateLocationS3Input"} + if s.AgentArns != nil && len(s.AgentArns) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AgentArns", 1)) + } if s.S3BucketArn == nil { invalidParams.Add(request.NewErrParamRequired("S3BucketArn")) } @@ -3899,6 +3911,12 @@ func (s *CreateLocationS3Input) Validate() error { return nil } +// SetAgentArns sets the AgentArns field's value. +func (s *CreateLocationS3Input) SetAgentArns(v []*string) *CreateLocationS3Input { + s.AgentArns = v + return s +} + // SetS3BucketArn sets the S3BucketArn field's value. func (s *CreateLocationS3Input) SetS3BucketArn(v string) *CreateLocationS3Input { s.S3BucketArn = &v @@ -4935,7 +4953,9 @@ type DescribeLocationObjectStorageOutput struct { _ struct{} `type:"structure"` // Optional. The access key is used if credentials are required to access the - // self-managed object storage server. + // self-managed object storage server. If your object storage requires a user + // name and password to authenticate, use AccessKey and SecretKey to provide + // the user name and password, respectively. AccessKey *string `min:"8" type:"string"` // The Amazon Resource Name (ARN) of the agents associated with the self-managed @@ -5058,10 +5078,15 @@ func (s *DescribeLocationS3Input) SetLocationArn(v string) *DescribeLocationS3In type DescribeLocationS3Output struct { _ struct{} `type:"structure"` + // If you are using DataSync on an Amazon Outpost, the Amazon Resource Name + // (ARNs) of the EC2 agents deployed on your AWS Outpost. For more information + // about launching a DataSync agent on an Amazon Outpost, see outposts-agent. + AgentArns []*string `min:"1" type:"list"` + // The time that the Amazon S3 bucket location was created. CreationTime *time.Time `type:"timestamp"` - // The Amazon Resource Name (ARN) of the Amazon S3 bucket location. + // The Amazon Resource Name (ARN) of the Amazon S3 bucket or access point. LocationArn *string `type:"string"` // The URL of the Amazon S3 location that was described. @@ -5093,6 +5118,12 @@ func (s DescribeLocationS3Output) GoString() string { return s.String() } +// SetAgentArns sets the AgentArns field's value. +func (s *DescribeLocationS3Output) SetAgentArns(v []*string) *DescribeLocationS3Output { + s.AgentArns = v + return s +} + // SetCreationTime sets the CreationTime field's value. func (s *DescribeLocationS3Output) SetCreationTime(v time.Time) *DescribeLocationS3Output { s.CreationTime = &v @@ -5936,6 +5967,9 @@ func (s *ListAgentsOutput) SetNextToken(v string) *ListAgentsOutput { type ListLocationsInput struct { _ struct{} `type:"structure"` + // You can use API filters to narrow down the list of resources returned by + // ListLocations. For example, to retrieve all tasks on a specific source location, + // you can use ListLocations with filter name LocationType S3 and Operator Equals. Filters []*LocationFilter `type:"list"` // The maximum number of locations to return. @@ -6201,6 +6235,10 @@ func (s *ListTaskExecutionsOutput) SetTaskExecutions(v []*TaskExecutionListEntry type ListTasksInput struct { _ struct{} `type:"structure"` + // You can use API filters to narrow down the list of resources returned by + // ListTasks. For example, to retrieve all tasks on a specific source location, + // you can use ListTasks with filter name LocationId and Operator Equals with + // the ARN for the location. Filters []*TaskFilter `type:"list"` // The maximum number of tasks to return. @@ -6293,15 +6331,27 @@ func (s *ListTasksOutput) SetTasks(v []*TaskListEntry) *ListTasksOutput { return s } +// You can use API filters to narrow down the list of resources returned by +// ListLocations. For example, to retrieve all your Amazon S3 locations, you +// can use ListLocations with filter name LocationType S3 and Operator Equals. type LocationFilter struct { _ struct{} `type:"structure"` + // The name of the filter being used. Each API call supports a list of filters + // that are available for it (for example, LocationType for ListLocations). + // // Name is a required field Name *string `type:"string" required:"true" enum:"LocationFilterName"` + // The operator that is used to compare filter values (for example, Equals or + // Contains). For more about API filtering operators, see query-resources. + // // Operator is a required field Operator *string `type:"string" required:"true" enum:"Operator"` + // The values that you want to filter for. For example, you might want to display + // only Amazon S3 locations. + // // Values is a required field Values []*string `type:"list" required:"true"` } @@ -6451,7 +6501,7 @@ func (s *NfsMountOptions) SetVersion(v string) *NfsMountOptions { type OnPremConfig struct { _ struct{} `type:"structure"` - // ARNs)of the agents to use for an NFS location. + // ARNs of the agents to use for an NFS location. // // AgentArns is a required field AgentArns []*string `min:"1" type:"list" required:"true"` @@ -6612,10 +6662,16 @@ type Options struct { // to run in series. For more information, see queue-task-execution. TaskQueueing *string `type:"string" enum:"TaskQueueing"` - // TransferMode has two values: CHANGED and ALL. CHANGED performs an "incremental" - // or "delta sync", it compares file modification time between source and destination - // to determine which files need to be transferred. ALL skips destination inventory - // and transfers all files discovered on the source. + // A value that determines whether DataSync transfers only the data and metadata + // that differ between the source and the destination location, or whether DataSync + // transfers all the content from the source, without comparing to the destination + // location. + // + // CHANGED: DataSync copies only data or metadata that is new or different content + // from the source location to the destination location. + // + // ALL: DataSync copies all source location content to the destination, without + // comparing to existing content on the destination. TransferMode *string `type:"string" enum:"TransferMode"` // The user ID (UID) of the file's owner. @@ -7247,15 +7303,28 @@ func (s *TaskExecutionResultDetail) SetVerifyStatus(v string) *TaskExecutionResu return s } +// You can use API filters to narrow down the list of resources returned by +// ListTasks. For example, to retrieve all tasks on a source location, you can +// use ListTasks with filter name LocationId and Operator Equals with the ARN +// for the location. type TaskFilter struct { _ struct{} `type:"structure"` + // The name of the filter being used. Each API call supports a list of filters + // that are available for it. For example, LocationId for ListTasks. + // // Name is a required field Name *string `type:"string" required:"true" enum:"TaskFilterName"` + // The operator that is used to compare filter values (for example, Equals or + // Contains). For more about API filtering operators, see query-resources. + // // Operator is a required field Operator *string `type:"string" required:"true" enum:"Operator"` + // The values that you want to filter for. For example, you might want to display + // only tasks for a specific destination location. + // // Values is a required field Values []*string `type:"list" required:"true"` } @@ -7988,6 +8057,9 @@ const ( // S3StorageClassDeepArchive is a S3StorageClass enum value S3StorageClassDeepArchive = "DEEP_ARCHIVE" + + // S3StorageClassOutposts is a S3StorageClass enum value + S3StorageClassOutposts = "OUTPOSTS" ) // S3StorageClass_Values returns all elements of the S3StorageClass enum @@ -7999,6 +8071,7 @@ func S3StorageClass_Values() []string { S3StorageClassIntelligentTiering, S3StorageClassGlacier, S3StorageClassDeepArchive, + S3StorageClassOutposts, } } diff --git a/service/directconnect/api.go b/service/directconnect/api.go index bb67a8efe42..5459f9a6b32 100644 --- a/service/directconnect/api.go +++ b/service/directconnect/api.go @@ -1814,24 +1814,24 @@ func (c *DirectConnect) CreateLagRequest(input *CreateLagInput) (req *request.Re // CreateLag API operation for AWS Direct Connect. // // Creates a link aggregation group (LAG) with the specified number of bundled -// physical connections between the customer network and a specific AWS Direct -// Connect location. A LAG is a logical interface that uses the Link Aggregation -// Control Protocol (LACP) to aggregate multiple interfaces, enabling you to -// treat them as a single interface. +// physical dedicated connections between the customer network and a specific +// AWS Direct Connect location. A LAG is a logical interface that uses the Link +// Aggregation Control Protocol (LACP) to aggregate multiple interfaces, enabling +// you to treat them as a single interface. // -// All connections in a LAG must use the same bandwidth and must terminate at -// the same AWS Direct Connect endpoint. +// All connections in a LAG must use the same bandwidth (either 1Gbps or 10Gbps) +// and must terminate at the same AWS Direct Connect endpoint. // -// You can have up to 10 connections per LAG. Regardless of this limit, if you -// request more connections for the LAG than AWS Direct Connect can allocate +// You can have up to 10 dedicated connections per LAG. Regardless of this limit, +// if you request more connections for the LAG than AWS Direct Connect can allocate // on a single endpoint, no LAG is created. // -// You can specify an existing physical connection or interconnect to include -// in the LAG (which counts towards the total number of connections). Doing -// so interrupts the current physical connection or hosted connections, and -// re-establishes them as a member of the LAG. The LAG will be created on the -// same AWS Direct Connect endpoint to which the connection terminates. Any -// virtual interfaces associated with the connection are automatically disassociated +// You can specify an existing physical dedicated connection or interconnect +// to include in the LAG (which counts towards the total number of connections). +// Doing so interrupts the current physical dedicated connection, and re-establishes +// them as a member of the LAG. The LAG will be created on the same AWS Direct +// Connect endpoint to which the dedicated connection terminates. Any virtual +// interfaces associated with the dedicated connection are automatically disassociated // and re-associated with the LAG. The connection ID does not change. // // If the AWS account used to create a LAG is a registered AWS Direct Connect @@ -7129,12 +7129,11 @@ type CreateLagInput struct { // The tags to associate with the automtically created LAGs. ChildConnectionTags []*Tag `locationName:"childConnectionTags" min:"1" type:"list"` - // The ID of an existing connection to migrate to the LAG. + // The ID of an existing dedicated connection to migrate to the LAG. ConnectionId *string `locationName:"connectionId" type:"string"` - // The bandwidth of the individual physical connections bundled by the LAG. - // The possible values are 50Mbps, 100Mbps, 200Mbps, 300Mbps, 400Mbps, 500Mbps, - // 1Gbps, 2Gbps, 5Gbps, and 10Gbps. + // The bandwidth of the individual physical dedicated connections bundled by + // the LAG. The possible values are 1Gbps and 10Gbps. // // ConnectionsBandwidth is a required field ConnectionsBandwidth *string `locationName:"connectionsBandwidth" type:"string" required:"true"` @@ -7149,8 +7148,8 @@ type CreateLagInput struct { // Location is a required field Location *string `locationName:"location" type:"string" required:"true"` - // The number of physical connections initially provisioned and bundled by the - // LAG. + // The number of physical dedicated connections initially provisioned and bundled + // by the LAG. // // NumberOfConnections is a required field NumberOfConnections *int64 `locationName:"numberOfConnections" type:"integer" required:"true"` @@ -9624,12 +9623,12 @@ type Lag struct { // The location of the LAG. Location *string `locationName:"location" type:"string"` - // The minimum number of physical connections that must be operational for the - // LAG itself to be operational. + // The minimum number of physical dedicated connections that must be operational + // for the LAG itself to be operational. MinimumLinks *int64 `locationName:"minimumLinks" type:"integer"` - // The number of physical connections bundled by the LAG, up to a maximum of - // 10. + // The number of physical dedicated connections bundled by the LAG, up to a + // maximum of 10. NumberOfConnections *int64 `locationName:"numberOfConnections" type:"integer"` // The ID of the AWS account that owns the LAG. diff --git a/service/emr/api.go b/service/emr/api.go index 4412668d58c..c5bbdc5c95d 100644 --- a/service/emr/api.go +++ b/service/emr/api.go @@ -4792,6 +4792,8 @@ type Cluster struct { // The Amazon Resource Name (ARN) of the Outpost where the cluster is launched. OutpostArn *string `type:"string"` + PlacementGroups []*PlacementGroupConfig `type:"list"` + // The Amazon EMR release label, which determines the version of open-source // application packages installed on the cluster. Release labels are in the // form emr-x.x.x, where x.x.x is an Amazon EMR release version such as emr-5.14.0. @@ -4971,6 +4973,12 @@ func (s *Cluster) SetOutpostArn(v string) *Cluster { return s } +// SetPlacementGroups sets the PlacementGroups field's value. +func (s *Cluster) SetPlacementGroups(v []*PlacementGroupConfig) *Cluster { + s.PlacementGroups = v + return s +} + // SetReleaseLabel sets the ReleaseLabel field's value. func (s *Cluster) SetReleaseLabel(v string) *Cluster { s.ReleaseLabel = &v @@ -10600,6 +10608,50 @@ func (s *OnDemandProvisioningSpecification) SetAllocationStrategy(v string) *OnD return s } +type PlacementGroupConfig struct { + _ struct{} `type:"structure"` + + // InstanceRole is a required field + InstanceRole *string `type:"string" required:"true" enum:"InstanceRoleType"` + + PlacementStrategy *string `type:"string" enum:"PlacementGroupStrategy"` +} + +// String returns the string representation +func (s PlacementGroupConfig) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PlacementGroupConfig) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PlacementGroupConfig) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PlacementGroupConfig"} + if s.InstanceRole == nil { + invalidParams.Add(request.NewErrParamRequired("InstanceRole")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetInstanceRole sets the InstanceRole field's value. +func (s *PlacementGroupConfig) SetInstanceRole(v string) *PlacementGroupConfig { + s.InstanceRole = &v + return s +} + +// SetPlacementStrategy sets the PlacementStrategy field's value. +func (s *PlacementGroupConfig) SetPlacementStrategy(v string) *PlacementGroupConfig { + s.PlacementStrategy = &v + return s +} + // The Amazon EC2 Availability Zone configuration of the cluster (job flow). type PlacementType struct { _ struct{} `type:"structure"` @@ -11262,6 +11314,8 @@ type RunJobFlowInput struct { // * "ganglia" - launch the cluster with the Ganglia Monitoring System installed. NewSupportedProducts []*SupportedProductConfig `type:"list"` + PlacementGroupConfigs []*PlacementGroupConfig `type:"list"` + // The Amazon EMR release label, which determines the version of open-source // application packages installed on the cluster. Release labels are in the // form emr-x.x.x, where x.x.x is an Amazon EMR release version such as emr-5.14.0. @@ -11374,6 +11428,16 @@ func (s *RunJobFlowInput) Validate() error { invalidParams.AddNested("ManagedScalingPolicy", err.(request.ErrInvalidParams)) } } + if s.PlacementGroupConfigs != nil { + for i, v := range s.PlacementGroupConfigs { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PlacementGroupConfigs", i), err.(request.ErrInvalidParams)) + } + } + } if s.Steps != nil { for i, v := range s.Steps { if v == nil { @@ -11487,6 +11551,12 @@ func (s *RunJobFlowInput) SetNewSupportedProducts(v []*SupportedProductConfig) * return s } +// SetPlacementGroupConfigs sets the PlacementGroupConfigs field's value. +func (s *RunJobFlowInput) SetPlacementGroupConfigs(v []*PlacementGroupConfig) *RunJobFlowInput { + s.PlacementGroupConfigs = v + return s +} + // SetReleaseLabel sets the ReleaseLabel field's value. func (s *RunJobFlowInput) SetReleaseLabel(v string) *RunJobFlowInput { s.ReleaseLabel = &v @@ -13708,6 +13778,30 @@ func OnDemandProvisioningAllocationStrategy_Values() []string { } } +const ( + // PlacementGroupStrategySpread is a PlacementGroupStrategy enum value + PlacementGroupStrategySpread = "SPREAD" + + // PlacementGroupStrategyPartition is a PlacementGroupStrategy enum value + PlacementGroupStrategyPartition = "PARTITION" + + // PlacementGroupStrategyCluster is a PlacementGroupStrategy enum value + PlacementGroupStrategyCluster = "CLUSTER" + + // PlacementGroupStrategyNone is a PlacementGroupStrategy enum value + PlacementGroupStrategyNone = "NONE" +) + +// PlacementGroupStrategy_Values returns all elements of the PlacementGroupStrategy enum +func PlacementGroupStrategy_Values() []string { + return []string{ + PlacementGroupStrategySpread, + PlacementGroupStrategyPartition, + PlacementGroupStrategyCluster, + PlacementGroupStrategyNone, + } +} + const ( // RepoUpgradeOnBootSecurity is a RepoUpgradeOnBoot enum value RepoUpgradeOnBootSecurity = "SECURITY" diff --git a/service/imagebuilder/api.go b/service/imagebuilder/api.go index ea48fda27f7..6c57feba8cf 100644 --- a/service/imagebuilder/api.go +++ b/service/imagebuilder/api.go @@ -4793,6 +4793,9 @@ func (c *Imagebuilder) UpdateInfrastructureConfigurationWithContext(ctx aws.Cont type Ami struct { _ struct{} `type:"structure"` + // The account ID of the owner of the AMI. + AccountId *string `locationName:"accountId" min:"1" type:"string"` + // The description of the EC2 AMI. Description *string `locationName:"description" min:"1" type:"string"` @@ -4819,6 +4822,12 @@ func (s Ami) GoString() string { return s.String() } +// SetAccountId sets the AccountId field's value. +func (s *Ami) SetAccountId(v string) *Ami { + s.AccountId = &v + return s +} + // SetDescription sets the Description field's value. func (s *Ami) SetDescription(v string) *Ami { s.Description = &v @@ -4868,6 +4877,9 @@ type AmiDistributionConfiguration struct { // The name of the distribution configuration. Name *string `locationName:"name" min:"1" type:"string"` + + // The ID of an account to which you want to distribute an image. + TargetAccountIds []*string `locationName:"targetAccountIds" min:"1" type:"list"` } // String returns the string representation @@ -4895,6 +4907,14 @@ func (s *AmiDistributionConfiguration) Validate() error { if s.Name != nil && len(*s.Name) < 1 { invalidParams.Add(request.NewErrParamMinLen("Name", 1)) } + if s.TargetAccountIds != nil && len(s.TargetAccountIds) < 1 { + invalidParams.Add(request.NewErrParamMinLen("TargetAccountIds", 1)) + } + if s.LaunchPermission != nil { + if err := s.LaunchPermission.Validate(); err != nil { + invalidParams.AddNested("LaunchPermission", err.(request.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -4932,6 +4952,12 @@ func (s *AmiDistributionConfiguration) SetName(v string) *AmiDistributionConfigu return s } +// SetTargetAccountIds sets the TargetAccountIds field's value. +func (s *AmiDistributionConfiguration) SetTargetAccountIds(v []*string) *AmiDistributionConfiguration { + s.TargetAccountIds = v + return s +} + // You have exceeded the permitted request rate for the specific operation. type CallRateLimitExceededException struct { _ struct{} `type:"structure"` @@ -6271,13 +6297,11 @@ type CreateImageRecipeInput struct { // The parent image of the image recipe. The value of the string can be the // ARN of the parent image or an AMI ID. The format for the ARN follows this - // example: arn:aws:imagebuilder:us-west-2:aws:image/windows-server-2016-english-full-base-x86/2019.x.x. - // The ARN ends with /20xx.x.x, which communicates to EC2 Image Builder that - // you want to use the latest AMI created in 20xx (year). You can provide the - // specific version that you want to use, or you can use a wildcard in all of - // the fields. If you enter an AMI ID for the string value, you must have access - // to the AMI, and the AMI must be in the same Region in which you are using - // Image Builder. + // example: arn:aws:imagebuilder:us-west-2:aws:image/windows-server-2016-english-full-base-x86/xxxx.x.x. + // You can provide the specific version that you want to use, or you can use + // a wildcard in all of the fields. If you enter an AMI ID for the string value, + // you must have access to the AMI, and the AMI must be in the same Region in + // which you are using Image Builder. // // ParentImage is a required field ParentImage *string `locationName:"parentImage" min:"1" type:"string" required:"true"` @@ -7117,7 +7141,7 @@ type Distribution struct { // The License Manager Configuration to associate with the AMI in the specified // Region. - LicenseConfigurationArns []*string `locationName:"licenseConfigurationArns" type:"list"` + LicenseConfigurationArns []*string `locationName:"licenseConfigurationArns" min:"1" type:"list"` // The target Region. // @@ -7138,6 +7162,9 @@ func (s Distribution) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *Distribution) Validate() error { invalidParams := request.ErrInvalidParams{Context: "Distribution"} + if s.LicenseConfigurationArns != nil && len(s.LicenseConfigurationArns) < 1 { + invalidParams.Add(request.NewErrParamMinLen("LicenseConfigurationArns", 1)) + } if s.Region == nil { invalidParams.Add(request.NewErrParamRequired("Region")) } @@ -9899,7 +9926,7 @@ type LaunchPermissionConfiguration struct { UserGroups []*string `locationName:"userGroups" type:"list"` // The AWS account ID. - UserIds []*string `locationName:"userIds" type:"list"` + UserIds []*string `locationName:"userIds" min:"1" type:"list"` } // String returns the string representation @@ -9912,6 +9939,19 @@ func (s LaunchPermissionConfiguration) GoString() string { return s.String() } +// Validate inspects the fields of the type to determine if they are valid. +func (s *LaunchPermissionConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "LaunchPermissionConfiguration"} + if s.UserIds != nil && len(s.UserIds) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserIds", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // SetUserGroups sets the UserGroups field's value. func (s *LaunchPermissionConfiguration) SetUserGroups(v []*string) *LaunchPermissionConfiguration { s.UserGroups = v @@ -11687,12 +11727,20 @@ type Schedule struct { // The condition configures when the pipeline should trigger a new image build. // When the pipelineExecutionStartCondition is set to EXPRESSION_MATCH_AND_DEPENDENCY_UPDATES_AVAILABLE, - // EC2 Image Builder will build a new image only when there are known changes - // pending. When it is set to EXPRESSION_MATCH_ONLY, it will build a new image - // every time the CRON expression matches the current time. + // and you use semantic version filters on the source image or components in + // your image recipe, EC2 Image Builder will build a new image only when there + // are new versions of the image or components in your recipe that match the + // semantic version filter. When it is set to EXPRESSION_MATCH_ONLY, it will + // build a new image every time the CRON expression matches the current time. + // For semantic version syntax, see CreateComponent (https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html) + // in the EC2 Image Builder API Reference. PipelineExecutionStartCondition *string `locationName:"pipelineExecutionStartCondition" type:"string" enum:"PipelineExecutionStartCondition"` - // The expression determines how often EC2 Image Builder evaluates your pipelineExecutionStartCondition. + // The cron expression determines how often EC2 Image Builder evaluates your + // pipelineExecutionStartCondition. + // + // For information on how to format a cron expression in Image Builder, see + // Use cron expressions in EC2 Image Builder (https://docs.aws.amazon.com/imagebuilder/latest/userguide/image-builder-cron.html). ScheduleExpression *string `locationName:"scheduleExpression" min:"1" type:"string"` } @@ -12708,6 +12756,9 @@ const ( // EbsVolumeTypeIo1 is a EbsVolumeType enum value EbsVolumeTypeIo1 = "io1" + // EbsVolumeTypeIo2 is a EbsVolumeType enum value + EbsVolumeTypeIo2 = "io2" + // EbsVolumeTypeGp2 is a EbsVolumeType enum value EbsVolumeTypeGp2 = "gp2" @@ -12723,6 +12774,7 @@ func EbsVolumeType_Values() []string { return []string{ EbsVolumeTypeStandard, EbsVolumeTypeIo1, + EbsVolumeTypeIo2, EbsVolumeTypeGp2, EbsVolumeTypeSc1, EbsVolumeTypeSt1, diff --git a/service/iot/api.go b/service/iot/api.go index 0c4177de470..45a60f6429b 100644 --- a/service/iot/api.go +++ b/service/iot/api.go @@ -11068,8 +11068,7 @@ func (c *IoT) ListAuditFindingsRequest(input *ListAuditFindingsInput) (req *requ // ListAuditFindings API operation for AWS IoT. // // Lists the findings (results) of a Device Defender audit or of the audits -// performed during a specified time period. (Findings are retained for 180 -// days.) +// performed during a specified time period. (Findings are retained for 90 days.) // // 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 @@ -18943,6 +18942,9 @@ func (c *IoT) SetV2LoggingLevelRequest(input *SetV2LoggingLevelInput) (req *requ // * ServiceUnavailableException // The service is temporarily unavailable. // +// * LimitExceededException +// A limit has been exceeded. +// func (c *IoT) SetV2LoggingLevel(input *SetV2LoggingLevelInput) (*SetV2LoggingLevelOutput, error) { req, out := c.SetV2LoggingLevelRequest(input) return out, req.Send() @@ -22200,6 +22202,12 @@ type Action struct { // Starts execution of a Step Functions state machine. StepFunctions *StepFunctionsAction `locationName:"stepFunctions" type:"structure"` + + // The Timestream rule action writes attributes (measures) from an MQTT message + // into an Amazon Timestream table. For more information, see the Timestream + // (https://docs.aws.amazon.com/iot/latest/developerguide/timestream-rule-action.html) + // topic rule action documentation. + Timestream *TimestreamAction `locationName:"timestream" type:"structure"` } // String returns the string representation @@ -22305,6 +22313,11 @@ func (s *Action) Validate() error { invalidParams.AddNested("StepFunctions", err.(request.ErrInvalidParams)) } } + if s.Timestream != nil { + if err := s.Timestream.Validate(); err != nil { + invalidParams.AddNested("Timestream", err.(request.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -22426,6 +22439,12 @@ func (s *Action) SetStepFunctions(v *StepFunctionsAction) *Action { return s } +// SetTimestream sets the Timestream field's value. +func (s *Action) SetTimestream(v *TimestreamAction) *Action { + s.Timestream = v + return s +} + // Information about an active Device Defender security profile behavior violation. type ActiveViolation struct { _ struct{} `type:"structure"` @@ -39489,7 +39508,7 @@ type ListAuditTasksInput struct { NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` // The beginning of the time period. Audit information is retained for a limited - // time (180 days). Requesting a start time prior to what is retained results + // time (90 days). Requesting a start time prior to what is retained results // in an "InvalidRequestException". // // StartTime is a required field @@ -49918,6 +49937,242 @@ func (s *TimeoutConfig) SetInProgressTimeoutInMinutes(v int64) *TimeoutConfig { return s } +// The Timestream rule action writes attributes (measures) from an MQTT message +// into an Amazon Timestream table. For more information, see the Timestream +// (https://docs.aws.amazon.com/iot/latest/developerguide/timestream-rule-action.html) +// topic rule action documentation. +type TimestreamAction struct { + _ struct{} `type:"structure"` + + // The name of an Amazon Timestream database. + // + // DatabaseName is a required field + DatabaseName *string `locationName:"databaseName" type:"string" required:"true"` + + // Metadata attributes of the time series that are written in each measure record. + // + // Dimensions is a required field + Dimensions []*TimestreamDimension `locationName:"dimensions" min:"1" type:"list" required:"true"` + + // The ARN of the role that grants permission to write to the Amazon Timestream + // database table. + // + // RoleArn is a required field + RoleArn *string `locationName:"roleArn" type:"string" required:"true"` + + // The name of the database table into which to write the measure records. + // + // TableName is a required field + TableName *string `locationName:"tableName" type:"string" required:"true"` + + // Specifies an application-defined value to replace the default value assigned + // to the Timestream record's timestamp in the time column. + // + // You can use this property to specify the value and the precision of the Timestream + // record's timestamp. You can specify a value from the message payload or a + // value computed by a substitution template. + // + // If omitted, the topic rule action assigns the timestamp, in milliseconds, + // at the time it processed the rule. + Timestamp *TimestreamTimestamp `locationName:"timestamp" type:"structure"` +} + +// String returns the string representation +func (s TimestreamAction) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s TimestreamAction) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TimestreamAction) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TimestreamAction"} + if s.DatabaseName == nil { + invalidParams.Add(request.NewErrParamRequired("DatabaseName")) + } + if s.Dimensions == nil { + invalidParams.Add(request.NewErrParamRequired("Dimensions")) + } + if s.Dimensions != nil && len(s.Dimensions) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Dimensions", 1)) + } + if s.RoleArn == nil { + invalidParams.Add(request.NewErrParamRequired("RoleArn")) + } + if s.TableName == nil { + invalidParams.Add(request.NewErrParamRequired("TableName")) + } + if s.Dimensions != nil { + for i, v := range s.Dimensions { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams)) + } + } + } + if s.Timestamp != nil { + if err := s.Timestamp.Validate(); err != nil { + invalidParams.AddNested("Timestamp", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDatabaseName sets the DatabaseName field's value. +func (s *TimestreamAction) SetDatabaseName(v string) *TimestreamAction { + s.DatabaseName = &v + return s +} + +// SetDimensions sets the Dimensions field's value. +func (s *TimestreamAction) SetDimensions(v []*TimestreamDimension) *TimestreamAction { + s.Dimensions = v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *TimestreamAction) SetRoleArn(v string) *TimestreamAction { + s.RoleArn = &v + return s +} + +// SetTableName sets the TableName field's value. +func (s *TimestreamAction) SetTableName(v string) *TimestreamAction { + s.TableName = &v + return s +} + +// SetTimestamp sets the Timestamp field's value. +func (s *TimestreamAction) SetTimestamp(v *TimestreamTimestamp) *TimestreamAction { + s.Timestamp = v + return s +} + +// Metadata attributes of the time series that are written in each measure record. +type TimestreamDimension struct { + _ struct{} `type:"structure"` + + // The metadata dimension name. This is the name of the column in the Amazon + // Timestream database table record. + // + // Dimensions cannot be named: measure_name, measure_value, or time. These names + // are reserved. Dimension names cannot start with ts_ or measure_value and + // they cannot contain the colon (:) character. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` + + // The value to write in this column of the database record. + // + // Value is a required field + Value *string `locationName:"value" type:"string" required:"true"` +} + +// String returns the string representation +func (s TimestreamDimension) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s TimestreamDimension) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TimestreamDimension) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TimestreamDimension"} + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Value == nil { + invalidParams.Add(request.NewErrParamRequired("Value")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetName sets the Name field's value. +func (s *TimestreamDimension) SetName(v string) *TimestreamDimension { + s.Name = &v + return s +} + +// SetValue sets the Value field's value. +func (s *TimestreamDimension) SetValue(v string) *TimestreamDimension { + s.Value = &v + return s +} + +// Describes how to interpret an application-defined timestamp value from an +// MQTT message payload and the precision of that value. +type TimestreamTimestamp struct { + _ struct{} `type:"structure"` + + // The precision of the timestamp value that results from the expression described + // in value. + // + // Valid values: SECONDS | MILLISECONDS | MICROSECONDS | NANOSECONDS. The default + // is MILLISECONDS. + // + // Unit is a required field + Unit *string `locationName:"unit" type:"string" required:"true"` + + // An expression that returns a long epoch time value. + // + // Value is a required field + Value *string `locationName:"value" type:"string" required:"true"` +} + +// String returns the string representation +func (s TimestreamTimestamp) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s TimestreamTimestamp) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TimestreamTimestamp) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TimestreamTimestamp"} + if s.Unit == nil { + invalidParams.Add(request.NewErrParamRequired("Unit")) + } + if s.Value == nil { + invalidParams.Add(request.NewErrParamRequired("Value")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetUnit sets the Unit field's value. +func (s *TimestreamTimestamp) SetUnit(v string) *TimestreamTimestamp { + s.Unit = &v + return s +} + +// SetValue sets the Value field's value. +func (s *TimestreamTimestamp) SetValue(v string) *TimestreamTimestamp { + s.Value = &v + return s +} + // Specifies the TLS context to use for the test authorizer request. type TlsContext struct { _ struct{} `type:"structure"` diff --git a/service/mediaconnect/api.go b/service/mediaconnect/api.go index 294dc80690d..442dce39e77 100644 --- a/service/mediaconnect/api.go +++ b/service/mediaconnect/api.go @@ -656,6 +656,211 @@ func (c *MediaConnect) DescribeFlowWithContext(ctx aws.Context, input *DescribeF return out, req.Send() } +const opDescribeOffering = "DescribeOffering" + +// DescribeOfferingRequest generates a "aws/request.Request" representing the +// client's request for the DescribeOffering operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DescribeOffering for more information on using the DescribeOffering +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DescribeOfferingRequest method. +// req, resp := client.DescribeOfferingRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/DescribeOffering +func (c *MediaConnect) DescribeOfferingRequest(input *DescribeOfferingInput) (req *request.Request, output *DescribeOfferingOutput) { + op := &request.Operation{ + Name: opDescribeOffering, + HTTPMethod: "GET", + HTTPPath: "/v1/offerings/{offeringArn}", + } + + if input == nil { + input = &DescribeOfferingInput{} + } + + output = &DescribeOfferingOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeOffering API operation for AWS MediaConnect. +// +// Displays the details of an offering. The response includes the offering description, +// duration, outbound bandwidth, price, and Amazon Resource Name (ARN). +// +// 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 +// the error. +// +// See the AWS API reference guide for AWS MediaConnect's +// API operation DescribeOffering for usage and error information. +// +// Returned Error Types: +// * NotFoundException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// * ServiceUnavailableException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// * TooManyRequestsException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// * BadRequestException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// * InternalServerErrorException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/DescribeOffering +func (c *MediaConnect) DescribeOffering(input *DescribeOfferingInput) (*DescribeOfferingOutput, error) { + req, out := c.DescribeOfferingRequest(input) + return out, req.Send() +} + +// DescribeOfferingWithContext is the same as DescribeOffering with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeOffering for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *MediaConnect) DescribeOfferingWithContext(ctx aws.Context, input *DescribeOfferingInput, opts ...request.Option) (*DescribeOfferingOutput, error) { + req, out := c.DescribeOfferingRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeReservation = "DescribeReservation" + +// DescribeReservationRequest generates a "aws/request.Request" representing the +// client's request for the DescribeReservation operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DescribeReservation for more information on using the DescribeReservation +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DescribeReservationRequest method. +// req, resp := client.DescribeReservationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/DescribeReservation +func (c *MediaConnect) DescribeReservationRequest(input *DescribeReservationInput) (req *request.Request, output *DescribeReservationOutput) { + op := &request.Operation{ + Name: opDescribeReservation, + HTTPMethod: "GET", + HTTPPath: "/v1/reservations/{reservationArn}", + } + + if input == nil { + input = &DescribeReservationInput{} + } + + output = &DescribeReservationOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeReservation API operation for AWS MediaConnect. +// +// Displays the details of a reservation. The response includes the reservation +// name, state, start date and time, and the details of the offering that make +// up the rest of the reservation (such as price, duration, and outbound bandwidth). +// +// 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 +// the error. +// +// See the AWS API reference guide for AWS MediaConnect's +// API operation DescribeReservation for usage and error information. +// +// Returned Error Types: +// * NotFoundException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// * ServiceUnavailableException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// * TooManyRequestsException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// * BadRequestException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// * InternalServerErrorException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/DescribeReservation +func (c *MediaConnect) DescribeReservation(input *DescribeReservationInput) (*DescribeReservationOutput, error) { + req, out := c.DescribeReservationRequest(input) + return out, req.Send() +} + +// DescribeReservationWithContext is the same as DescribeReservation with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeReservation for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *MediaConnect) DescribeReservationWithContext(ctx aws.Context, input *DescribeReservationInput, opts ...request.Option) (*DescribeReservationOutput, error) { + req, out := c.DescribeReservationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGrantFlowEntitlements = "GrantFlowEntitlements" // GrantFlowEntitlementsRequest generates a "aws/request.Request" representing the @@ -1077,6 +1282,319 @@ func (c *MediaConnect) ListFlowsPagesWithContext(ctx aws.Context, input *ListFlo return p.Err() } +const opListOfferings = "ListOfferings" + +// ListOfferingsRequest generates a "aws/request.Request" representing the +// client's request for the ListOfferings operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListOfferings for more information on using the ListOfferings +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ListOfferingsRequest method. +// req, resp := client.ListOfferingsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/ListOfferings +func (c *MediaConnect) ListOfferingsRequest(input *ListOfferingsInput) (req *request.Request, output *ListOfferingsOutput) { + op := &request.Operation{ + Name: opListOfferings, + HTTPMethod: "GET", + HTTPPath: "/v1/offerings", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListOfferingsInput{} + } + + output = &ListOfferingsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListOfferings API operation for AWS MediaConnect. +// +// Displays a list of all offerings that are available to this account in the +// current AWS Region. If you have an active reservation (which means you've +// purchased an offering that has already started and hasn't expired yet), your +// account isn't eligible for other offerings. +// +// 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 +// the error. +// +// See the AWS API reference guide for AWS MediaConnect's +// API operation ListOfferings for usage and error information. +// +// Returned Error Types: +// * ServiceUnavailableException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// * TooManyRequestsException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// * BadRequestException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// * InternalServerErrorException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/ListOfferings +func (c *MediaConnect) ListOfferings(input *ListOfferingsInput) (*ListOfferingsOutput, error) { + req, out := c.ListOfferingsRequest(input) + return out, req.Send() +} + +// ListOfferingsWithContext is the same as ListOfferings with the addition of +// the ability to pass a context and additional request options. +// +// See ListOfferings for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *MediaConnect) ListOfferingsWithContext(ctx aws.Context, input *ListOfferingsInput, opts ...request.Option) (*ListOfferingsOutput, error) { + req, out := c.ListOfferingsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListOfferingsPages iterates over the pages of a ListOfferings operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListOfferings method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListOfferings operation. +// pageNum := 0 +// err := client.ListOfferingsPages(params, +// func(page *mediaconnect.ListOfferingsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *MediaConnect) ListOfferingsPages(input *ListOfferingsInput, fn func(*ListOfferingsOutput, bool) bool) error { + return c.ListOfferingsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListOfferingsPagesWithContext same as ListOfferingsPages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *MediaConnect) ListOfferingsPagesWithContext(ctx aws.Context, input *ListOfferingsInput, fn func(*ListOfferingsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListOfferingsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListOfferingsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListOfferingsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListReservations = "ListReservations" + +// ListReservationsRequest generates a "aws/request.Request" representing the +// client's request for the ListReservations operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListReservations for more information on using the ListReservations +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ListReservationsRequest method. +// req, resp := client.ListReservationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/ListReservations +func (c *MediaConnect) ListReservationsRequest(input *ListReservationsInput) (req *request.Request, output *ListReservationsOutput) { + op := &request.Operation{ + Name: opListReservations, + HTTPMethod: "GET", + HTTPPath: "/v1/reservations", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListReservationsInput{} + } + + output = &ListReservationsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListReservations API operation for AWS MediaConnect. +// +// Displays a list of all reservations that have been purchased by this account +// in the current AWS Region. This list includes all reservations in all states +// (such as active and expired). +// +// 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 +// the error. +// +// See the AWS API reference guide for AWS MediaConnect's +// API operation ListReservations for usage and error information. +// +// Returned Error Types: +// * ServiceUnavailableException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// * TooManyRequestsException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// * BadRequestException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// * InternalServerErrorException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/ListReservations +func (c *MediaConnect) ListReservations(input *ListReservationsInput) (*ListReservationsOutput, error) { + req, out := c.ListReservationsRequest(input) + return out, req.Send() +} + +// ListReservationsWithContext is the same as ListReservations with the addition of +// the ability to pass a context and additional request options. +// +// See ListReservations for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *MediaConnect) ListReservationsWithContext(ctx aws.Context, input *ListReservationsInput, opts ...request.Option) (*ListReservationsOutput, error) { + req, out := c.ListReservationsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListReservationsPages iterates over the pages of a ListReservations operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListReservations method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListReservations operation. +// pageNum := 0 +// err := client.ListReservationsPages(params, +// func(page *mediaconnect.ListReservationsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *MediaConnect) ListReservationsPages(input *ListReservationsInput, fn func(*ListReservationsOutput, bool) bool) error { + return c.ListReservationsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListReservationsPagesWithContext same as ListReservationsPages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *MediaConnect) ListReservationsPagesWithContext(ctx aws.Context, input *ListReservationsInput, fn func(*ListReservationsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListReservationsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListReservationsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListReservationsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + const opListTagsForResource = "ListTagsForResource" // ListTagsForResourceRequest generates a "aws/request.Request" representing the @@ -1094,75 +1612,182 @@ const opListTagsForResource = "ListTagsForResource" // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // -// // Example sending a request using the ListTagsForResourceRequest method. -// req, resp := client.ListTagsForResourceRequest(params) +// // Example sending a request using the ListTagsForResourceRequest method. +// req, resp := client.ListTagsForResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/ListTagsForResource +func (c *MediaConnect) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { + op := &request.Operation{ + Name: opListTagsForResource, + HTTPMethod: "GET", + HTTPPath: "/tags/{resourceArn}", + } + + if input == nil { + input = &ListTagsForResourceInput{} + } + + output = &ListTagsForResourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListTagsForResource API operation for AWS MediaConnect. +// +// List all tags on an AWS Elemental MediaConnect resource +// +// 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 +// the error. +// +// See the AWS API reference guide for AWS MediaConnect's +// API operation ListTagsForResource for usage and error information. +// +// Returned Error Types: +// * NotFoundException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// * BadRequestException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// * InternalServerErrorException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/ListTagsForResource +func (c *MediaConnect) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) + return out, req.Send() +} + +// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of +// the ability to pass a context and additional request options. +// +// See ListTagsForResource for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *MediaConnect) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) { + req, out := c.ListTagsForResourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opPurchaseOffering = "PurchaseOffering" + +// PurchaseOfferingRequest generates a "aws/request.Request" representing the +// client's request for the PurchaseOffering operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See PurchaseOffering for more information on using the PurchaseOffering +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the PurchaseOfferingRequest method. +// req, resp := client.PurchaseOfferingRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/ListTagsForResource -func (c *MediaConnect) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/PurchaseOffering +func (c *MediaConnect) PurchaseOfferingRequest(input *PurchaseOfferingInput) (req *request.Request, output *PurchaseOfferingOutput) { op := &request.Operation{ - Name: opListTagsForResource, - HTTPMethod: "GET", - HTTPPath: "/tags/{resourceArn}", + Name: opPurchaseOffering, + HTTPMethod: "POST", + HTTPPath: "/v1/offerings/{offeringArn}", } if input == nil { - input = &ListTagsForResourceInput{} + input = &PurchaseOfferingInput{} } - output = &ListTagsForResourceOutput{} + output = &PurchaseOfferingOutput{} req = c.newRequest(op, input, output) return } -// ListTagsForResource API operation for AWS MediaConnect. +// PurchaseOffering API operation for AWS MediaConnect. // -// List all tags on an AWS Elemental MediaConnect resource +// Submits a request to purchase an offering. If you already have an active +// reservation, you can't purchase another offering. // // 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 // the error. // // See the AWS API reference guide for AWS MediaConnect's -// API operation ListTagsForResource for usage and error information. +// API operation PurchaseOffering for usage and error information. // // Returned Error Types: +// * BadRequestException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// * InternalServerErrorException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// +// * ForbiddenException +// Exception raised by AWS Elemental MediaConnect. See the error message and +// documentation for the operation for more information on the cause of this +// exception. +// // * NotFoundException // Exception raised by AWS Elemental MediaConnect. See the error message and // documentation for the operation for more information on the cause of this // exception. // -// * BadRequestException +// * ServiceUnavailableException // Exception raised by AWS Elemental MediaConnect. See the error message and // documentation for the operation for more information on the cause of this // exception. // -// * InternalServerErrorException +// * TooManyRequestsException // Exception raised by AWS Elemental MediaConnect. See the error message and // documentation for the operation for more information on the cause of this // exception. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/ListTagsForResource -func (c *MediaConnect) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) { - req, out := c.ListTagsForResourceRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/PurchaseOffering +func (c *MediaConnect) PurchaseOffering(input *PurchaseOfferingInput) (*PurchaseOfferingOutput, error) { + req, out := c.PurchaseOfferingRequest(input) return out, req.Send() } -// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of +// PurchaseOfferingWithContext is the same as PurchaseOffering with the addition of // the ability to pass a context and additional request options. // -// See ListTagsForResource for details on how to use this API operation. +// See PurchaseOffering for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *MediaConnect) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) { - req, out := c.ListTagsForResourceRequest(input) +func (c *MediaConnect) PurchaseOfferingWithContext(ctx aws.Context, input *PurchaseOfferingInput, opts ...request.Option) (*PurchaseOfferingOutput, error) { + req, out := c.PurchaseOfferingRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() @@ -3358,6 +3983,138 @@ func (s *DescribeFlowOutput) SetMessages(v *Messages) *DescribeFlowOutput { return s } +type DescribeOfferingInput struct { + _ struct{} `type:"structure"` + + // OfferingArn is a required field + OfferingArn *string `location:"uri" locationName:"offeringArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeOfferingInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeOfferingInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeOfferingInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeOfferingInput"} + if s.OfferingArn == nil { + invalidParams.Add(request.NewErrParamRequired("OfferingArn")) + } + if s.OfferingArn != nil && len(*s.OfferingArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("OfferingArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetOfferingArn sets the OfferingArn field's value. +func (s *DescribeOfferingInput) SetOfferingArn(v string) *DescribeOfferingInput { + s.OfferingArn = &v + return s +} + +// The result of a successful DescribeOffering request. +type DescribeOfferingOutput struct { + _ struct{} `type:"structure"` + + // A savings plan that reserves a certain amount of outbound bandwidth usage + // at a discounted rate each month over a period of time. + Offering *Offering `locationName:"offering" type:"structure"` +} + +// String returns the string representation +func (s DescribeOfferingOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeOfferingOutput) GoString() string { + return s.String() +} + +// SetOffering sets the Offering field's value. +func (s *DescribeOfferingOutput) SetOffering(v *Offering) *DescribeOfferingOutput { + s.Offering = v + return s +} + +type DescribeReservationInput struct { + _ struct{} `type:"structure"` + + // ReservationArn is a required field + ReservationArn *string `location:"uri" locationName:"reservationArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeReservationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeReservationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeReservationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeReservationInput"} + if s.ReservationArn == nil { + invalidParams.Add(request.NewErrParamRequired("ReservationArn")) + } + if s.ReservationArn != nil && len(*s.ReservationArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ReservationArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetReservationArn sets the ReservationArn field's value. +func (s *DescribeReservationInput) SetReservationArn(v string) *DescribeReservationInput { + s.ReservationArn = &v + return s +} + +// The result of a successful DescribeReservation request. +type DescribeReservationOutput struct { + _ struct{} `type:"structure"` + + // A pricing agreement for a discounted rate for a specific outbound bandwidth + // that your MediaConnect account will use each month over a specific time period. + // The discounted rate in the reservation applies to outbound bandwidth for + // all flows from your account until your account reaches the amount of bandwidth + // in your reservation. If you use more outbound bandwidth than the agreed upon + // amount in a single month, the overage is charged at the on-demand rate. + Reservation *Reservation `locationName:"reservation" type:"structure"` +} + +// String returns the string representation +func (s DescribeReservationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeReservationOutput) GoString() string { + return s.String() +} + +// SetReservation sets the Reservation field's value. +func (s *DescribeReservationOutput) SetReservation(v *Reservation) *DescribeReservationOutput { + s.Reservation = v + return s +} + // Information about the encryption of the flow. type Encryption struct { _ struct{} `type:"structure"` @@ -4216,8 +4973,174 @@ func (s ListFlowsInput) GoString() string { } // Validate inspects the fields of the type to determine if they are valid. -func (s *ListFlowsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListFlowsInput"} +func (s *ListFlowsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListFlowsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListFlowsInput) SetMaxResults(v int64) *ListFlowsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListFlowsInput) SetNextToken(v string) *ListFlowsInput { + s.NextToken = &v + return s +} + +// The result of a successful ListFlows request. The response includes flow +// summaries and the NextToken to use in a subsequent ListFlows request. +type ListFlowsOutput struct { + _ struct{} `type:"structure"` + + // A list of flow summaries. + Flows []*ListedFlow `locationName:"flows" type:"list"` + + // The token that identifies which batch of results that you want to see. For + // example, you submit a ListFlows request with MaxResults set at 5. The service + // returns the first batch of results (up to 5) and a NextToken value. To see + // the next batch of results, you can submit the ListFlows request a second + // time and specify the NextToken value. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListFlowsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListFlowsOutput) GoString() string { + return s.String() +} + +// SetFlows sets the Flows field's value. +func (s *ListFlowsOutput) SetFlows(v []*ListedFlow) *ListFlowsOutput { + s.Flows = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListFlowsOutput) SetNextToken(v string) *ListFlowsOutput { + s.NextToken = &v + return s +} + +type ListOfferingsInput struct { + _ struct{} `type:"structure"` + + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListOfferingsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListOfferingsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListOfferingsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListOfferingsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListOfferingsInput) SetMaxResults(v int64) *ListOfferingsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListOfferingsInput) SetNextToken(v string) *ListOfferingsInput { + s.NextToken = &v + return s +} + +// The result of a successful ListOfferings request. The response includes the +// details of each offering that your account is eligible for. The response +// includes the following information for each offering: description, duration, +// outbound bandwidth, price, Amazon Resource Name (ARN), and the NextToken +// to use in a subsequent ListOfferings request. +type ListOfferingsOutput struct { + _ struct{} `type:"structure"` + + // The token that identifies which batch of results that you want to see. For + // example, you submit a ListOfferings request with MaxResults set at 5. The + // service returns the first batch of results (up to 5) and a NextToken value. + // To see the next batch of results, you can submit the ListOfferings request + // a second time and specify the NextToken value. + NextToken *string `locationName:"nextToken" type:"string"` + + // A list of offerings that are available to this account in the current AWS + // Region. + Offerings []*Offering `locationName:"offerings" type:"list"` +} + +// String returns the string representation +func (s ListOfferingsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListOfferingsOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListOfferingsOutput) SetNextToken(v string) *ListOfferingsOutput { + s.NextToken = &v + return s +} + +// SetOfferings sets the Offerings field's value. +func (s *ListOfferingsOutput) SetOfferings(v []*Offering) *ListOfferingsOutput { + s.Offerings = v + return s +} + +type ListReservationsInput struct { + _ struct{} `type:"structure"` + + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListReservationsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListReservationsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListReservationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListReservationsInput"} if s.MaxResults != nil && *s.MaxResults < 1 { invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) } @@ -4229,52 +5152,56 @@ func (s *ListFlowsInput) Validate() error { } // SetMaxResults sets the MaxResults field's value. -func (s *ListFlowsInput) SetMaxResults(v int64) *ListFlowsInput { +func (s *ListReservationsInput) SetMaxResults(v int64) *ListReservationsInput { s.MaxResults = &v return s } // SetNextToken sets the NextToken field's value. -func (s *ListFlowsInput) SetNextToken(v string) *ListFlowsInput { +func (s *ListReservationsInput) SetNextToken(v string) *ListReservationsInput { s.NextToken = &v return s } -// The result of a successful ListFlows request. The response includes flow -// summaries and the NextToken to use in a subsequent ListFlows request. -type ListFlowsOutput struct { +// The result of a successful ListReservations request. The response includes +// the details of each offering that your account is eligible for. The response +// includes the following information for each offering: description, duration, +// outbound bandwidth, price, Amazon Resource Name (ARN), and the NextToken +// to use in a subsequent ListOfferings request. +type ListReservationsOutput struct { _ struct{} `type:"structure"` - // A list of flow summaries. - Flows []*ListedFlow `locationName:"flows" type:"list"` - // The token that identifies which batch of results that you want to see. For - // example, you submit a ListFlows request with MaxResults set at 5. The service - // returns the first batch of results (up to 5) and a NextToken value. To see - // the next batch of results, you can submit the ListFlows request a second - // time and specify the NextToken value. + // example, you submit a ListReservations request with MaxResults set at 5. + // The service returns the first batch of results (up to 5) and a NextToken + // value. To see the next batch of results, you can submit the ListReservations + // request a second time and specify the NextToken value. NextToken *string `locationName:"nextToken" type:"string"` + + // A list of all reservations that have been purchased by this account in the + // current AWS Region. + Reservations []*Reservation `locationName:"reservations" type:"list"` } // String returns the string representation -func (s ListFlowsOutput) String() string { +func (s ListReservationsOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s ListFlowsOutput) GoString() string { +func (s ListReservationsOutput) GoString() string { return s.String() } -// SetFlows sets the Flows field's value. -func (s *ListFlowsOutput) SetFlows(v []*ListedFlow) *ListFlowsOutput { - s.Flows = v +// SetNextToken sets the NextToken field's value. +func (s *ListReservationsOutput) SetNextToken(v string) *ListReservationsOutput { + s.NextToken = &v return s } -// SetNextToken sets the NextToken field's value. -func (s *ListFlowsOutput) SetNextToken(v string) *ListFlowsOutput { - s.NextToken = &v +// SetReservations sets the Reservations field's value. +func (s *ListReservationsOutput) SetReservations(v []*Reservation) *ListReservationsOutput { + s.Reservations = v return s } @@ -4557,6 +5484,114 @@ func (s *NotFoundException) RequestID() string { return s.RespMetadata.RequestID } +// A savings plan that reserves a certain amount of outbound bandwidth usage +// at a discounted rate each month over a period of time. +type Offering struct { + _ struct{} `type:"structure"` + + // The type of currency that is used for billing. The currencyCode used for + // all reservations is US dollars. + // + // CurrencyCode is a required field + CurrencyCode *string `locationName:"currencyCode" type:"string" required:"true"` + + // The length of time that your reservation would be active. + // + // Duration is a required field + Duration *int64 `locationName:"duration" type:"integer" required:"true"` + + // The unit of measurement for the duration of the offering. + // + // DurationUnits is a required field + DurationUnits *string `locationName:"durationUnits" type:"string" required:"true" enum:"DurationUnits"` + + // The Amazon Resource Name (ARN) that MediaConnect assigns to the offering. + // + // OfferingArn is a required field + OfferingArn *string `locationName:"offeringArn" type:"string" required:"true"` + + // A description of the offering. + // + // OfferingDescription is a required field + OfferingDescription *string `locationName:"offeringDescription" type:"string" required:"true"` + + // The cost of a single unit. This value, in combination with priceUnits, makes + // up the rate. + // + // PricePerUnit is a required field + PricePerUnit *string `locationName:"pricePerUnit" type:"string" required:"true"` + + // The unit of measurement that is used for billing. This value, in combination + // with pricePerUnit, makes up the rate. + // + // PriceUnits is a required field + PriceUnits *string `locationName:"priceUnits" type:"string" required:"true" enum:"PriceUnits"` + + // A definition of the amount of outbound bandwidth that you would be reserving + // if you purchase the offering. + // + // ResourceSpecification is a required field + ResourceSpecification *ResourceSpecification `locationName:"resourceSpecification" type:"structure" required:"true"` +} + +// String returns the string representation +func (s Offering) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Offering) GoString() string { + return s.String() +} + +// SetCurrencyCode sets the CurrencyCode field's value. +func (s *Offering) SetCurrencyCode(v string) *Offering { + s.CurrencyCode = &v + return s +} + +// SetDuration sets the Duration field's value. +func (s *Offering) SetDuration(v int64) *Offering { + s.Duration = &v + return s +} + +// SetDurationUnits sets the DurationUnits field's value. +func (s *Offering) SetDurationUnits(v string) *Offering { + s.DurationUnits = &v + return s +} + +// SetOfferingArn sets the OfferingArn field's value. +func (s *Offering) SetOfferingArn(v string) *Offering { + s.OfferingArn = &v + return s +} + +// SetOfferingDescription sets the OfferingDescription field's value. +func (s *Offering) SetOfferingDescription(v string) *Offering { + s.OfferingDescription = &v + return s +} + +// SetPricePerUnit sets the PricePerUnit field's value. +func (s *Offering) SetPricePerUnit(v string) *Offering { + s.PricePerUnit = &v + return s +} + +// SetPriceUnits sets the PriceUnits field's value. +func (s *Offering) SetPriceUnits(v string) *Offering { + s.PriceUnits = &v + return s +} + +// SetResourceSpecification sets the ResourceSpecification field's value. +func (s *Offering) SetResourceSpecification(v *ResourceSpecification) *Offering { + s.ResourceSpecification = v + return s +} + // The settings for an output. type Output struct { _ struct{} `type:"structure"` @@ -4678,6 +5713,110 @@ func (s *Output) SetVpcInterfaceAttachment(v *VpcInterfaceAttachment) *Output { return s } +// Submits a request to purchase an offering, which creates a reservation in +// your AWS account. If you already have an active reservation, you can't purchase +// another offering. +type PurchaseOfferingInput struct { + _ struct{} `type:"structure"` + + // OfferingArn is a required field + OfferingArn *string `location:"uri" locationName:"offeringArn" type:"string" required:"true"` + + // The name that you want to use for the reservation. + // + // ReservationName is a required field + ReservationName *string `locationName:"reservationName" type:"string" required:"true"` + + // The date and time that you want the reservation to begin, in Coordinated + // Universal Time (UTC). You can specify any date and time between 12:00am on + // the first day of the current month to the current time on today's date, inclusive. + // Specify the start in a 24-hour notation. Use the following format: YYYY-MM-DDTHH:mm:SSZ, + // where T and Z are literal characters. For example, to specify 11:30pm on + // March 5, 2020, enter 2020-03-05T23:30:00Z. + // + // Start is a required field + Start *string `locationName:"start" type:"string" required:"true"` +} + +// String returns the string representation +func (s PurchaseOfferingInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PurchaseOfferingInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PurchaseOfferingInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PurchaseOfferingInput"} + if s.OfferingArn == nil { + invalidParams.Add(request.NewErrParamRequired("OfferingArn")) + } + if s.OfferingArn != nil && len(*s.OfferingArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("OfferingArn", 1)) + } + if s.ReservationName == nil { + invalidParams.Add(request.NewErrParamRequired("ReservationName")) + } + if s.Start == nil { + invalidParams.Add(request.NewErrParamRequired("Start")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetOfferingArn sets the OfferingArn field's value. +func (s *PurchaseOfferingInput) SetOfferingArn(v string) *PurchaseOfferingInput { + s.OfferingArn = &v + return s +} + +// SetReservationName sets the ReservationName field's value. +func (s *PurchaseOfferingInput) SetReservationName(v string) *PurchaseOfferingInput { + s.ReservationName = &v + return s +} + +// SetStart sets the Start field's value. +func (s *PurchaseOfferingInput) SetStart(v string) *PurchaseOfferingInput { + s.Start = &v + return s +} + +// The result of a successful PurchaseOffering request. +type PurchaseOfferingOutput struct { + _ struct{} `type:"structure"` + + // A pricing agreement for a discounted rate for a specific outbound bandwidth + // that your MediaConnect account will use each month over a specific time period. + // The discounted rate in the reservation applies to outbound bandwidth for + // all flows from your account until your account reaches the amount of bandwidth + // in your reservation. If you use more outbound bandwidth than the agreed upon + // amount in a single month, the overage is charged at the on-demand rate. + Reservation *Reservation `locationName:"reservation" type:"structure"` +} + +// String returns the string representation +func (s PurchaseOfferingOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PurchaseOfferingOutput) GoString() string { + return s.String() +} + +// SetReservation sets the Reservation field's value. +func (s *PurchaseOfferingOutput) SetReservation(v *Reservation) *PurchaseOfferingOutput { + s.Reservation = v + return s +} + type RemoveFlowOutputInput struct { _ struct{} `type:"structure"` @@ -4952,6 +6091,215 @@ func (s *RemoveFlowVpcInterfaceOutput) SetVpcInterfaceName(v string) *RemoveFlow return s } +// A pricing agreement for a discounted rate for a specific outbound bandwidth +// that your MediaConnect account will use each month over a specific time period. +// The discounted rate in the reservation applies to outbound bandwidth for +// all flows from your account until your account reaches the amount of bandwidth +// in your reservation. If you use more outbound bandwidth than the agreed upon +// amount in a single month, the overage is charged at the on-demand rate. +type Reservation struct { + _ struct{} `type:"structure"` + + // The type of currency that is used for billing. The currencyCode used for + // your reservation is US dollars. + // + // CurrencyCode is a required field + CurrencyCode *string `locationName:"currencyCode" type:"string" required:"true"` + + // The length of time that this reservation is active. MediaConnect defines + // this value in the offering. + // + // Duration is a required field + Duration *int64 `locationName:"duration" type:"integer" required:"true"` + + // The unit of measurement for the duration of the reservation. MediaConnect + // defines this value in the offering. + // + // DurationUnits is a required field + DurationUnits *string `locationName:"durationUnits" type:"string" required:"true" enum:"DurationUnits"` + + // The day and time that this reservation expires. This value is calculated + // based on the start date and time that you set and the offering's duration. + // + // End is a required field + End *string `locationName:"end" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) that MediaConnect assigns to the offering. + // + // OfferingArn is a required field + OfferingArn *string `locationName:"offeringArn" type:"string" required:"true"` + + // A description of the offering. MediaConnect defines this value in the offering. + // + // OfferingDescription is a required field + OfferingDescription *string `locationName:"offeringDescription" type:"string" required:"true"` + + // The cost of a single unit. This value, in combination with priceUnits, makes + // up the rate. MediaConnect defines this value in the offering. + // + // PricePerUnit is a required field + PricePerUnit *string `locationName:"pricePerUnit" type:"string" required:"true"` + + // The unit of measurement that is used for billing. This value, in combination + // with pricePerUnit, makes up the rate. MediaConnect defines this value in + // the offering. + // + // PriceUnits is a required field + PriceUnits *string `locationName:"priceUnits" type:"string" required:"true" enum:"PriceUnits"` + + // The Amazon Resource Name (ARN) that MediaConnect assigns to the reservation + // when you purchase an offering. + // + // ReservationArn is a required field + ReservationArn *string `locationName:"reservationArn" type:"string" required:"true"` + + // The name that you assigned to the reservation when you purchased the offering. + // + // ReservationName is a required field + ReservationName *string `locationName:"reservationName" type:"string" required:"true"` + + // The status of your reservation. + // + // ReservationState is a required field + ReservationState *string `locationName:"reservationState" type:"string" required:"true" enum:"ReservationState"` + + // A definition of the amount of outbound bandwidth that you would be reserving + // if you purchase the offering. MediaConnect defines the values that make up + // the resourceSpecification in the offering. + // + // ResourceSpecification is a required field + ResourceSpecification *ResourceSpecification `locationName:"resourceSpecification" type:"structure" required:"true"` + + // The day and time that the reservation becomes active. You set this value + // when you purchase the offering. + // + // Start is a required field + Start *string `locationName:"start" type:"string" required:"true"` +} + +// String returns the string representation +func (s Reservation) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Reservation) GoString() string { + return s.String() +} + +// SetCurrencyCode sets the CurrencyCode field's value. +func (s *Reservation) SetCurrencyCode(v string) *Reservation { + s.CurrencyCode = &v + return s +} + +// SetDuration sets the Duration field's value. +func (s *Reservation) SetDuration(v int64) *Reservation { + s.Duration = &v + return s +} + +// SetDurationUnits sets the DurationUnits field's value. +func (s *Reservation) SetDurationUnits(v string) *Reservation { + s.DurationUnits = &v + return s +} + +// SetEnd sets the End field's value. +func (s *Reservation) SetEnd(v string) *Reservation { + s.End = &v + return s +} + +// SetOfferingArn sets the OfferingArn field's value. +func (s *Reservation) SetOfferingArn(v string) *Reservation { + s.OfferingArn = &v + return s +} + +// SetOfferingDescription sets the OfferingDescription field's value. +func (s *Reservation) SetOfferingDescription(v string) *Reservation { + s.OfferingDescription = &v + return s +} + +// SetPricePerUnit sets the PricePerUnit field's value. +func (s *Reservation) SetPricePerUnit(v string) *Reservation { + s.PricePerUnit = &v + return s +} + +// SetPriceUnits sets the PriceUnits field's value. +func (s *Reservation) SetPriceUnits(v string) *Reservation { + s.PriceUnits = &v + return s +} + +// SetReservationArn sets the ReservationArn field's value. +func (s *Reservation) SetReservationArn(v string) *Reservation { + s.ReservationArn = &v + return s +} + +// SetReservationName sets the ReservationName field's value. +func (s *Reservation) SetReservationName(v string) *Reservation { + s.ReservationName = &v + return s +} + +// SetReservationState sets the ReservationState field's value. +func (s *Reservation) SetReservationState(v string) *Reservation { + s.ReservationState = &v + return s +} + +// SetResourceSpecification sets the ResourceSpecification field's value. +func (s *Reservation) SetResourceSpecification(v *ResourceSpecification) *Reservation { + s.ResourceSpecification = v + return s +} + +// SetStart sets the Start field's value. +func (s *Reservation) SetStart(v string) *Reservation { + s.Start = &v + return s +} + +// A definition of what is being billed for, including the type and amount. +type ResourceSpecification struct { + _ struct{} `type:"structure"` + + // The amount of outbound bandwidth that is discounted in the offering. + ReservedBitrate *int64 `locationName:"reservedBitrate" type:"integer"` + + // The type of resource and the unit that is being billed for. + // + // ResourceType is a required field + ResourceType *string `locationName:"resourceType" type:"string" required:"true" enum:"ResourceType"` +} + +// String returns the string representation +func (s ResourceSpecification) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ResourceSpecification) GoString() string { + return s.String() +} + +// SetReservedBitrate sets the ReservedBitrate field's value. +func (s *ResourceSpecification) SetReservedBitrate(v int64) *ResourceSpecification { + s.ReservedBitrate = &v + return s +} + +// SetResourceType sets the ResourceType field's value. +func (s *ResourceSpecification) SetResourceType(v string) *ResourceSpecification { + s.ResourceType = &v + return s +} + type RevokeFlowEntitlementInput struct { _ struct{} `type:"structure"` @@ -6026,7 +7374,7 @@ func (s *UpdateFlowEntitlementInput) SetSubscribers(v []*string) *UpdateFlowEnti type UpdateFlowEntitlementOutput struct { _ struct{} `type:"structure"` - // The settings for a flow entitlement. + // The new configuration of the entitlement that you updated. Entitlement *Entitlement `locationName:"entitlement" type:"structure"` // The ARN of the flow that this entitlement was granted on. @@ -6295,7 +7643,7 @@ type UpdateFlowOutputOutput struct { // The ARN of the flow that is associated with the updated output. FlowArn *string `locationName:"flowArn" type:"string"` - // The settings for an output. + // The new settings of the output that you updated. Output *Output `locationName:"output" type:"structure"` } @@ -6703,6 +8051,18 @@ func Algorithm_Values() []string { } } +const ( + // DurationUnitsMonths is a DurationUnits enum value + DurationUnitsMonths = "MONTHS" +) + +// DurationUnits_Values returns all elements of the DurationUnits enum +func DurationUnits_Values() []string { + return []string{ + DurationUnitsMonths, + } +} + const ( // EntitlementStatusEnabled is a EntitlementStatus enum value EntitlementStatusEnabled = "ENABLED" @@ -6735,6 +8095,18 @@ func KeyType_Values() []string { } } +const ( + // PriceUnitsHourly is a PriceUnits enum value + PriceUnitsHourly = "HOURLY" +) + +// PriceUnits_Values returns all elements of the PriceUnits enum +func PriceUnits_Values() []string { + return []string{ + PriceUnitsHourly, + } +} + const ( // ProtocolZixiPush is a Protocol enum value ProtocolZixiPush = "zixi-push" @@ -6763,6 +8135,42 @@ func Protocol_Values() []string { } } +const ( + // ReservationStateActive is a ReservationState enum value + ReservationStateActive = "ACTIVE" + + // ReservationStateExpired is a ReservationState enum value + ReservationStateExpired = "EXPIRED" + + // ReservationStateProcessing is a ReservationState enum value + ReservationStateProcessing = "PROCESSING" + + // ReservationStateCanceled is a ReservationState enum value + ReservationStateCanceled = "CANCELED" +) + +// ReservationState_Values returns all elements of the ReservationState enum +func ReservationState_Values() []string { + return []string{ + ReservationStateActive, + ReservationStateExpired, + ReservationStateProcessing, + ReservationStateCanceled, + } +} + +const ( + // ResourceTypeMbpsOutboundBandwidth is a ResourceType enum value + ResourceTypeMbpsOutboundBandwidth = "Mbps_Outbound_Bandwidth" +) + +// ResourceType_Values returns all elements of the ResourceType enum +func ResourceType_Values() []string { + return []string{ + ResourceTypeMbpsOutboundBandwidth, + } +} + const ( // SourceTypeOwned is a SourceType enum value SourceTypeOwned = "OWNED" diff --git a/service/mediaconnect/mediaconnectiface/interface.go b/service/mediaconnect/mediaconnectiface/interface.go index 64346bbf1eb..d908d0a95df 100644 --- a/service/mediaconnect/mediaconnectiface/interface.go +++ b/service/mediaconnect/mediaconnectiface/interface.go @@ -84,6 +84,14 @@ type MediaConnectAPI interface { DescribeFlowWithContext(aws.Context, *mediaconnect.DescribeFlowInput, ...request.Option) (*mediaconnect.DescribeFlowOutput, error) DescribeFlowRequest(*mediaconnect.DescribeFlowInput) (*request.Request, *mediaconnect.DescribeFlowOutput) + DescribeOffering(*mediaconnect.DescribeOfferingInput) (*mediaconnect.DescribeOfferingOutput, error) + DescribeOfferingWithContext(aws.Context, *mediaconnect.DescribeOfferingInput, ...request.Option) (*mediaconnect.DescribeOfferingOutput, error) + DescribeOfferingRequest(*mediaconnect.DescribeOfferingInput) (*request.Request, *mediaconnect.DescribeOfferingOutput) + + DescribeReservation(*mediaconnect.DescribeReservationInput) (*mediaconnect.DescribeReservationOutput, error) + DescribeReservationWithContext(aws.Context, *mediaconnect.DescribeReservationInput, ...request.Option) (*mediaconnect.DescribeReservationOutput, error) + DescribeReservationRequest(*mediaconnect.DescribeReservationInput) (*request.Request, *mediaconnect.DescribeReservationOutput) + GrantFlowEntitlements(*mediaconnect.GrantFlowEntitlementsInput) (*mediaconnect.GrantFlowEntitlementsOutput, error) GrantFlowEntitlementsWithContext(aws.Context, *mediaconnect.GrantFlowEntitlementsInput, ...request.Option) (*mediaconnect.GrantFlowEntitlementsOutput, error) GrantFlowEntitlementsRequest(*mediaconnect.GrantFlowEntitlementsInput) (*request.Request, *mediaconnect.GrantFlowEntitlementsOutput) @@ -102,10 +110,28 @@ type MediaConnectAPI interface { ListFlowsPages(*mediaconnect.ListFlowsInput, func(*mediaconnect.ListFlowsOutput, bool) bool) error ListFlowsPagesWithContext(aws.Context, *mediaconnect.ListFlowsInput, func(*mediaconnect.ListFlowsOutput, bool) bool, ...request.Option) error + ListOfferings(*mediaconnect.ListOfferingsInput) (*mediaconnect.ListOfferingsOutput, error) + ListOfferingsWithContext(aws.Context, *mediaconnect.ListOfferingsInput, ...request.Option) (*mediaconnect.ListOfferingsOutput, error) + ListOfferingsRequest(*mediaconnect.ListOfferingsInput) (*request.Request, *mediaconnect.ListOfferingsOutput) + + ListOfferingsPages(*mediaconnect.ListOfferingsInput, func(*mediaconnect.ListOfferingsOutput, bool) bool) error + ListOfferingsPagesWithContext(aws.Context, *mediaconnect.ListOfferingsInput, func(*mediaconnect.ListOfferingsOutput, bool) bool, ...request.Option) error + + ListReservations(*mediaconnect.ListReservationsInput) (*mediaconnect.ListReservationsOutput, error) + ListReservationsWithContext(aws.Context, *mediaconnect.ListReservationsInput, ...request.Option) (*mediaconnect.ListReservationsOutput, error) + ListReservationsRequest(*mediaconnect.ListReservationsInput) (*request.Request, *mediaconnect.ListReservationsOutput) + + ListReservationsPages(*mediaconnect.ListReservationsInput, func(*mediaconnect.ListReservationsOutput, bool) bool) error + ListReservationsPagesWithContext(aws.Context, *mediaconnect.ListReservationsInput, func(*mediaconnect.ListReservationsOutput, bool) bool, ...request.Option) error + ListTagsForResource(*mediaconnect.ListTagsForResourceInput) (*mediaconnect.ListTagsForResourceOutput, error) ListTagsForResourceWithContext(aws.Context, *mediaconnect.ListTagsForResourceInput, ...request.Option) (*mediaconnect.ListTagsForResourceOutput, error) ListTagsForResourceRequest(*mediaconnect.ListTagsForResourceInput) (*request.Request, *mediaconnect.ListTagsForResourceOutput) + PurchaseOffering(*mediaconnect.PurchaseOfferingInput) (*mediaconnect.PurchaseOfferingOutput, error) + PurchaseOfferingWithContext(aws.Context, *mediaconnect.PurchaseOfferingInput, ...request.Option) (*mediaconnect.PurchaseOfferingOutput, error) + PurchaseOfferingRequest(*mediaconnect.PurchaseOfferingInput) (*request.Request, *mediaconnect.PurchaseOfferingOutput) + RemoveFlowOutput(*mediaconnect.RemoveFlowOutputInput) (*mediaconnect.RemoveFlowOutputOutput, error) RemoveFlowOutputWithContext(aws.Context, *mediaconnect.RemoveFlowOutputInput, ...request.Option) (*mediaconnect.RemoveFlowOutputOutput, error) RemoveFlowOutputRequest(*mediaconnect.RemoveFlowOutputInput) (*request.Request, *mediaconnect.RemoveFlowOutputOutput) diff --git a/service/pinpoint/api.go b/service/pinpoint/api.go index 678e2142da0..242834aef93 100644 --- a/service/pinpoint/api.go +++ b/service/pinpoint/api.go @@ -9966,6 +9966,9 @@ func (c *Pinpoint) UpdateJourneyRequest(input *UpdateJourneyInput) (req *request // * TooManyRequestsException // Provides information about an API request or response. // +// * ConflictException +// Provides information about an API request or response. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/pinpoint-2016-12-01/UpdateJourney func (c *Pinpoint) UpdateJourney(input *UpdateJourneyInput) (*UpdateJourneyOutput, error) { req, out := c.UpdateJourneyRequest(input) @@ -13218,12 +13221,12 @@ type ApplicationSettingsResource struct { // last modified. LastModifiedDate *string `type:"string"` - // The default sending limits for campaigns and journeys in the application. + // The default sending limits for campaigns in the application. Limits *CampaignLimits `type:"structure"` - // The default quiet time for campaigns and journeys in the application. Quiet - // time is a specific time range when messages aren't sent to endpoints, if - // all the following conditions are met: + // The default quiet time for campaigns in the application. Quiet time is a + // specific time range when messages aren't sent to endpoints, if all the following + // conditions are met: // // * The EndpointDemographic.Timezone property of the endpoint is set to // a valid value. @@ -14157,7 +14160,7 @@ func (s *CampaignHook) SetWebUrl(v string) *CampaignHook { // For a campaign, specifies limits on the messages that the campaign can send. // For an application, specifies the default limits for messages that campaigns -// and journeys in the application can send. +// in the application can send. type CampaignLimits struct { _ struct{} `type:"structure"` @@ -14174,8 +14177,8 @@ type CampaignLimits struct { // The maximum number of messages that a campaign can send each second. For // an application, this value specifies the default limit for the number of - // messages that campaigns and journeys can send each second. The minimum value - // is 50. The maximum value is 20,000. + // messages that campaigns can send each second. The minimum value is 50. The + // maximum value is 20,000. MessagesPerSecond *int64 `type:"integer"` // The maximum number of messages that a campaign can send to a single endpoint @@ -14773,6 +14776,12 @@ func (s *Condition) SetOperator(v string) *Condition { // Specifies the settings for a yes/no split activity in a journey. This type // of activity sends participants down one of two paths in a journey, based // on conditions that you specify. +// +// To create yes/no split activities that send participants down different paths +// based on push notification events (such as Open or Received events), your +// mobile app has to specify the User ID and Endpoint ID values. For more information, +// see Integrating Amazon Pinpoint with your application (https://docs.aws.amazon.com/pinpoint/latest/developerguide/integrate.html) +// in the Amazon Pinpoint Developer Guide. type ConditionalSplitActivity struct { _ struct{} `type:"structure"` @@ -14842,6 +14851,64 @@ func (s *ConditionalSplitActivity) SetTrueActivity(v string) *ConditionalSplitAc return s } +// Provides information about an API request or response. +type ConflictException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` + + RequestID_ *string `locationName:"RequestID" type:"string"` +} + +// String returns the string representation +func (s ConflictException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ConflictException) GoString() string { + return s.String() +} + +func newErrorConflictException(v protocol.ResponseMetadata) error { + return &ConflictException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ConflictException) Code() string { + return "ConflictException" +} + +// Message returns the exception's message. +func (s *ConflictException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ConflictException) OrigErr() error { + return nil +} + +func (s *ConflictException) Error() string { + return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ConflictException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ConflictException) RequestID() string { + return s.RespMetadata.RequestID +} + type CreateAppInput struct { _ struct{} `type:"structure" payload:"CreateApplicationRequest"` @@ -16064,11 +16131,11 @@ func (s *CustomDeliveryConfiguration) SetEndpointTypes(v []*string) *CustomDeliv type CustomMessageActivity struct { _ struct{} `type:"structure"` - // The destination to send the custom message to. This value can be one of the - // following: + // The destination to send the campaign or treatment to. This value can be one + // of the following: // // * The name or Amazon Resource Name (ARN) of an AWS Lambda function to - // invoke to handle delivery of the custom message. + // invoke to handle delivery of the campaign or treatment. // // * The URL for a web application or service that supports HTTPS and can // receive the message. The URL has to be a full URL, including the HTTPS @@ -19738,9 +19805,7 @@ type EventCondition struct { _ struct{} `type:"structure"` // The dimensions for the event filter to use for the activity. - // - // Dimensions is a required field - Dimensions *EventDimensions `type:"structure" required:"true"` + Dimensions *EventDimensions `type:"structure"` // The message identifier (message_id) for the message to use when determining // whether message events meet the condition. @@ -19760,9 +19825,6 @@ func (s EventCondition) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *EventCondition) Validate() error { invalidParams := request.ErrInvalidParams{Context: "EventCondition"} - if s.Dimensions == nil { - invalidParams.Add(request.NewErrParamRequired("Dimensions")) - } if s.Dimensions != nil { if err := s.Dimensions.Validate(); err != nil { invalidParams.AddNested("Dimensions", err.(request.ErrInvalidParams)) @@ -19874,6 +19936,69 @@ func (s *EventDimensions) SetMetrics(v map[string]*MetricDimension) *EventDimens return s } +// Specifies the settings for an event that causes a campaign to be sent or +// a journey activity to be performed. +type EventFilter struct { + _ struct{} `type:"structure"` + + // The dimensions for the event filter to use for the campaign or the journey + // activity. + // + // Dimensions is a required field + Dimensions *EventDimensions `type:"structure" required:"true"` + + // The type of event that causes the campaign to be sent or the journey activity + // to be performed. Valid values are: SYSTEM, sends the campaign or performs + // the activity when a system event occurs; and, ENDPOINT, sends the campaign + // or performs the activity when an endpoint event (Events resource) occurs. + // + // FilterType is a required field + FilterType *string `type:"string" required:"true" enum:"FilterType"` +} + +// String returns the string representation +func (s EventFilter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s EventFilter) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *EventFilter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EventFilter"} + if s.Dimensions == nil { + invalidParams.Add(request.NewErrParamRequired("Dimensions")) + } + if s.FilterType == nil { + invalidParams.Add(request.NewErrParamRequired("FilterType")) + } + if s.Dimensions != nil { + if err := s.Dimensions.Validate(); err != nil { + invalidParams.AddNested("Dimensions", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDimensions sets the Dimensions field's value. +func (s *EventFilter) SetDimensions(v *EventDimensions) *EventFilter { + s.Dimensions = v + return s +} + +// SetFilterType sets the FilterType field's value. +func (s *EventFilter) SetFilterType(v string) *EventFilter { + s.FilterType = &v + return s +} + // Provides the status code and message that result from processing an event. type EventItemResponse struct { _ struct{} `type:"structure"` @@ -19910,6 +20035,54 @@ func (s *EventItemResponse) SetStatusCode(v int64) *EventItemResponse { return s } +// Specifies the settings for an event that causes a journey activity to start. +type EventStartCondition struct { + _ struct{} `type:"structure"` + + // Specifies the settings for an event that causes a campaign to be sent or + // a journey activity to be performed. + EventFilter *EventFilter `type:"structure"` + + SegmentId *string `type:"string"` +} + +// String returns the string representation +func (s EventStartCondition) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s EventStartCondition) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *EventStartCondition) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EventStartCondition"} + if s.EventFilter != nil { + if err := s.EventFilter.Validate(); err != nil { + invalidParams.AddNested("EventFilter", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEventFilter sets the EventFilter field's value. +func (s *EventStartCondition) SetEventFilter(v *EventFilter) *EventStartCondition { + s.EventFilter = v + return s +} + +// SetSegmentId sets the SegmentId field's value. +func (s *EventStartCondition) SetSegmentId(v string) *EventStartCondition { + s.SegmentId = &v + return s +} + // Specifies settings for publishing event data to an Amazon Kinesis data stream // or an Amazon Kinesis Data Firehose delivery stream. type EventStream struct { @@ -25423,7 +25596,7 @@ type JourneyExecutionMetricsResponse struct { // A JSON object that contains the results of the query. For information about // the structure and contents of the results, see the Amazon Pinpoint Developer - // Guide (https://docs.aws.amazon.com/pinpoint/latest/developerguide/analytics-standard-metrics.html). + // Guide (https://docs.aws.amazon.com//pinpoint/latest/developerguide/analytics-standard-metrics.html). // // Metrics is a required field Metrics map[string]*string `type:"map" required:"true"` @@ -25753,7 +25926,7 @@ type JourneySMSMessage struct { // The sender ID to display as the sender of the message on a recipient's device. // Support for sender IDs varies by country or region. For more information, - // see Supported Countries and Regions (https://docs.aws.amazon.com.amazon.com/pinpoint/latest/userguide/channels-sms-countries.html) + // see Supported Countries and Regions (https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-countries.html) // in the Amazon Pinpoint User Guide. SenderId *string `type:"string"` } @@ -26534,8 +26707,9 @@ type MessageRequest struct { _ struct{} `type:"structure"` // A map of key-value pairs, where each key is an address and each value is - // an AddressConfiguration object. An address can be a push notification token, - // a phone number, or an email address. You can use an AddressConfiguration + // an AddressConfiguration (https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-messages.html#apps-application-id-messages-model-addressconfiguration) + // object. An address can be a push notification token, a phone number, or an + // email address. You can use an AddressConfiguration (https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-messages.html#apps-application-id-messages-model-addressconfiguration) // object to tailor the message for an address by specifying settings such as // content overrides and message variables. Addresses map[string]*AddressConfiguration `type:"map"` @@ -26546,7 +26720,8 @@ type MessageRequest struct { Context map[string]*string `type:"map"` // A map of key-value pairs, where each key is an endpoint ID and each value - // is an EndpointSendConfiguration object. You can use an EndpointSendConfiguration + // is an EndpointSendConfiguration (https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-messages.html#apps-application-id-messages-model-endpointsendconfiguration) + // object. You can use an EndpointSendConfiguration (https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-messages.html#apps-application-id-messages-model-endpointsendconfiguration) // object to tailor the message for an endpoint by specifying settings such // as content overrides and message variables. Endpoints map[string]*EndpointSendConfiguration `type:"map"` @@ -26939,6 +27114,12 @@ func (s *MultiConditionalBranch) SetNextActivity(v string) *MultiConditionalBran // Specifies the settings for a multivariate split activity in a journey. This // type of activity sends participants down one of as many as five paths (including // a default Else path) in a journey, based on conditions that you specify. +// +// To create multivariate split activities that send participants down different +// paths based on push notification events (such as Open or Received events), +// your mobile app has to specify the User ID and Endpoint ID values. For more +// information, see Integrating Amazon Pinpoint with your application (https://docs.aws.amazon.com/pinpoint/latest/developerguide/integrate.html) +// in the Amazon Pinpoint Developer Guide. type MultiConditionalSplitActivity struct { _ struct{} `type:"structure"` @@ -28780,8 +28961,7 @@ type SMSMessage struct { // your dedicated number. Keyword *string `type:"string"` - // The URL of an image or video to display in the SMS message. This field is - // reserved for future use. + // This field is reserved for future use. MediaUrl *string `type:"string"` // The SMS message type. Valid values are TRANSACTIONAL (for messages that are @@ -30197,9 +30377,10 @@ type SendUsersMessageRequest struct { // to message recipients. TraceId *string `type:"string"` - // A map that associates user IDs with EndpointSendConfiguration objects. You - // can use an EndpointSendConfiguration object to tailor the message for a user - // by specifying settings such as content overrides and message variables. + // A map that associates user IDs with EndpointSendConfiguration (https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-messages.html#apps-application-id-messages-model-endpointsendconfiguration) + // objects. You can use an EndpointSendConfiguration (https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-messages.html#apps-application-id-messages-model-endpointsendconfiguration) + // object to tailor the message for a user by specifying settings such as content + // overrides and message variables. // // Users is a required field Users map[string]*EndpointSendConfiguration `type:"map" required:"true"` @@ -30671,6 +30852,9 @@ type StartCondition struct { // The custom description of the condition. Description *string `type:"string"` + // Specifies the settings for an event that causes a journey activity to start. + EventStartCondition *EventStartCondition `type:"structure"` + // The segment that's associated with the first activity in the journey. This // segment determines which users are participants in the journey. SegmentStartCondition *SegmentCondition `type:"structure"` @@ -30689,6 +30873,11 @@ func (s StartCondition) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *StartCondition) Validate() error { invalidParams := request.ErrInvalidParams{Context: "StartCondition"} + if s.EventStartCondition != nil { + if err := s.EventStartCondition.Validate(); err != nil { + invalidParams.AddNested("EventStartCondition", err.(request.ErrInvalidParams)) + } + } if s.SegmentStartCondition != nil { if err := s.SegmentStartCondition.Validate(); err != nil { invalidParams.AddNested("SegmentStartCondition", err.(request.ErrInvalidParams)) @@ -30707,6 +30896,12 @@ func (s *StartCondition) SetDescription(v string) *StartCondition { return s } +// SetEventStartCondition sets the EventStartCondition field's value. +func (s *StartCondition) SetEventStartCondition(v *EventStartCondition) *StartCondition { + s.EventStartCondition = v + return s +} + // SetSegmentStartCondition sets the SegmentStartCondition field's value. func (s *StartCondition) SetSegmentStartCondition(v *SegmentCondition) *StartCondition { s.SegmentStartCondition = v @@ -34252,14 +34447,14 @@ type WriteApplicationSettingsRequest struct { // Specifies whether to enable application-related alarms in Amazon CloudWatch. CloudWatchMetricsEnabled *bool `type:"boolean"` - // The default sending limits for campaigns and journeys in the application. - // To override these limits and define custom limits for a specific campaign - // or journey, use the Campaign resource or the Journey resource, respectively. + // The default sending limits for campaigns in the application. To override + // these limits and define custom limits for a specific campaign or journey, + // use the Campaign resource or the Journey resource, respectively. Limits *CampaignLimits `type:"structure"` - // The default quiet time for campaigns and journeys in the application. Quiet - // time is a specific time range when messages aren't sent to endpoints, if - // all the following conditions are met: + // The default quiet time for campaigns in the application. Quiet time is a + // specific time range when messages aren't sent to endpoints, if all the following + // conditions are met: // // * The EndpointDemographic.Timezone property of the endpoint is set to // a valid value. @@ -35004,6 +35199,9 @@ const ( // CampaignStatusDeleted is a CampaignStatus enum value CampaignStatusDeleted = "DELETED" + + // CampaignStatusInvalid is a CampaignStatus enum value + CampaignStatusInvalid = "INVALID" ) // CampaignStatus_Values returns all elements of the CampaignStatus enum @@ -35015,6 +35213,7 @@ func CampaignStatus_Values() []string { CampaignStatusCompleted, CampaignStatusPaused, CampaignStatusDeleted, + CampaignStatusInvalid, } } diff --git a/service/pinpoint/errors.go b/service/pinpoint/errors.go index 569147fd7b8..25f548678a8 100644 --- a/service/pinpoint/errors.go +++ b/service/pinpoint/errors.go @@ -14,6 +14,12 @@ const ( // Provides information about an API request or response. ErrCodeBadRequestException = "BadRequestException" + // ErrCodeConflictException for service response error code + // "ConflictException". + // + // Provides information about an API request or response. + ErrCodeConflictException = "ConflictException" + // ErrCodeForbiddenException for service response error code // "ForbiddenException". // @@ -53,6 +59,7 @@ const ( var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ "BadRequestException": newErrorBadRequestException, + "ConflictException": newErrorConflictException, "ForbiddenException": newErrorForbiddenException, "InternalServerErrorException": newErrorInternalServerErrorException, "MethodNotAllowedException": newErrorMethodNotAllowedException, diff --git a/service/s3/api.go b/service/s3/api.go index 2ccad45a71c..97fe206b1ae 100644 --- a/service/s3/api.go +++ b/service/s3/api.go @@ -14,13 +14,13 @@ import ( "github.com/aws/aws-sdk-go/aws/awsutil" "github.com/aws/aws-sdk-go/aws/client" "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/internal/s3shared/arn" "github.com/aws/aws-sdk-go/private/checksum" "github.com/aws/aws-sdk-go/private/protocol" "github.com/aws/aws-sdk-go/private/protocol/eventstream" "github.com/aws/aws-sdk-go/private/protocol/eventstream/eventstreamapi" "github.com/aws/aws-sdk-go/private/protocol/rest" "github.com/aws/aws-sdk-go/private/protocol/restxml" - "github.com/aws/aws-sdk-go/service/s3/internal/arn" ) const opAbortMultipartUpload = "AbortMultipartUpload" @@ -530,14 +530,17 @@ func (c *S3) CreateBucketRequest(input *CreateBucketInput) (req *request.Request // CreateBucket API operation for Amazon Simple Storage Service. // -// Creates a new bucket. To create a bucket, you must register with Amazon S3 -// and have a valid AWS Access Key ID to authenticate requests. Anonymous requests -// are never allowed to create buckets. By creating the bucket, you become the -// bucket owner. +// Creates a new S3 bucket. To create a bucket, you must register with Amazon +// S3 and have a valid AWS Access Key ID to authenticate requests. Anonymous +// requests are never allowed to create buckets. By creating the bucket, you +// become the bucket owner. // -// Not every string is an acceptable bucket name. For information on 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). // +// 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). +// // By default, the bucket is created in the US East (N. Virginia) Region. You // can optionally specify a Region in the request body. You might choose a Region // to optimize latency, minimize costs, or address regulatory requirements. @@ -900,7 +903,7 @@ func (c *S3) DeleteBucketRequest(input *DeleteBucketInput) (req *request.Request // DeleteBucket API operation for Amazon Simple Storage Service. // -// Deletes the bucket. All objects (including all object versions and delete +// Deletes the S3 bucket. All objects (including all object versions and delete // markers) in the bucket must be deleted before the bucket itself can be deleted. // // Related Resources @@ -2960,8 +2963,8 @@ func (c *S3) GetBucketLifecycleConfigurationRequest(input *GetBucketLifecycleCon // an object key name prefix, one or more object tags, or a combination of both. // Accordingly, this section describes the latest API. The response describes // the new filter element that you can use to specify a filter to select a subset -// of objects to which the rule applies. If you are still using previous version -// of the lifecycle configuration, it works. For the earlier API description, +// of objects to which the rule applies. If you are using a previous version +// of the lifecycle configuration, it still works. For the earlier API description, // see GetBucketLifecycle (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html). // // Returns the lifecycle configuration information set on the bucket. For information @@ -4324,6 +4327,8 @@ func (c *S3) GetObjectAclRequest(input *GetObjectAclInput) (req *request.Request // Returns the access control list (ACL) of an object. To use this operation, // you must have READ_ACP access to the object. // +// This action is not supported by Amazon S3 on Outposts. +// // Versioning // // By default, GET returns ACL information about the current version of an object. @@ -4417,6 +4422,8 @@ func (c *S3) GetObjectLegalHoldRequest(input *GetObjectLegalHoldInput) (req *req // Gets an object's current Legal Hold status. For more information, see Locking // Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). // +// This action is not supported by Amazon S3 on Outposts. +// // 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 // the error. @@ -4569,6 +4576,8 @@ func (c *S3) GetObjectRetentionRequest(input *GetObjectRetentionInput) (req *req // Retrieves an object's retention settings. For more information, see Locking // Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). // +// This action is not supported by Amazon S3 on Outposts. +// // 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 // the error. @@ -4733,16 +4742,18 @@ func (c *S3) GetObjectTorrentRequest(input *GetObjectTorrentInput) (req *request // GetObjectTorrent API operation for Amazon Simple Storage Service. // -// Return torrent files from a bucket. BitTorrent can save you bandwidth when +// Returns torrent files from a bucket. BitTorrent can save you bandwidth when // you're distributing large files. For more information about BitTorrent, see -// Amazon S3 Torrent (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3Torrent.html). +// Using BitTorrent with Amazon S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3Torrent.html). // -// You can get torrent only for objects that are less than 5 GB in size and -// that are not encrypted using server-side encryption with customer-provided +// You can get torrent only for objects that are less than 5 GB in size, and +// that are not encrypted using server-side encryption with a customer-provided // encryption key. // // To use GET, you must have READ access to the object. // +// This action is not supported by Amazon S3 on Outposts. +// // The following operation is related to GetObjectTorrent: // // * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) @@ -5687,15 +5698,17 @@ func (c *S3) ListObjectVersionsRequest(input *ListObjectVersionsInput) (req *req // ListObjectVersions API operation for Amazon Simple Storage Service. // -// Returns metadata about all of the versions of objects in a bucket. You can -// also use request parameters as selection criteria to return metadata about -// a subset of all the object versions. +// Returns metadata about all versions of the objects in a bucket. You can also +// use request parameters as selection criteria to return metadata about a subset +// of all the object versions. // // A 200 OK response can contain valid or invalid XML. Make sure to design your // application to parse the contents of the response and handle it appropriately. // // To use this operation, you must have READ access to the bucket. // +// This action is not supported by Amazon S3 on Outposts. +// // The following operations are related to ListObjectVersions: // // * ListObjectsV2 (https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) @@ -8609,11 +8622,13 @@ func (c *S3) PutObjectAclRequest(input *PutObjectAclInput) (req *request.Request // PutObjectAcl API operation for Amazon Simple Storage Service. // // Uses the acl subresource to set the access control list (ACL) permissions -// for an object that already exists in an S3 bucket. You must have WRITE_ACP -// permission to set the ACL of an object. For more information, see What permissions -// can I grant? (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#permissions) +// for a new or existing object in an S3 bucket. You must have WRITE_ACP permission +// to set the ACL of an object. For more information, see What permissions can +// I grant? (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#permissions) // in the Amazon Simple Storage Service Developer Guide. // +// This action is not supported by Amazon S3 on Outposts. +// // Depending on your application needs, you can choose to set the ACL on an // object using either the request body or the headers. For example, if you // have an existing application that updates a bucket ACL using the request @@ -8776,6 +8791,8 @@ func (c *S3) PutObjectLegalHoldRequest(input *PutObjectLegalHoldInput) (req *req // // Applies a Legal Hold configuration to the specified object. // +// This action is not supported by Amazon S3 on Outposts. +// // Related Resources // // * Locking Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) @@ -8945,6 +8962,8 @@ func (c *S3) PutObjectRetentionRequest(input *PutObjectRetentionInput) (req *req // // Places an Object Retention configuration on an object. // +// This action is not supported by Amazon S3 on Outposts. +// // Related Resources // // * Locking Objects (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) @@ -9240,7 +9259,9 @@ func (c *S3) RestoreObjectRequest(input *RestoreObjectInput) (req *request.Reque // // Restores an archived copy of an object back into Amazon S3 // -// This operation performs the following types of requests: +// This action is not supported by Amazon S3 on Outposts. +// +// This action performs the following types of requests: // // * select - Perform a select query on an archived object // @@ -9520,6 +9541,8 @@ func (c *S3) SelectObjectContentRequest(input *SelectObjectContentInput) (req *r // SQL expression. You must also specify the data serialization format for the // response. // +// This action is not supported by Amazon S3 on Outposts. +// // For more information about Amazon S3 Select, see Selecting Content from Objects // (https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html) // in the Amazon Simple Storage Service Developer Guide. @@ -10154,6 +10177,14 @@ type AbortMultipartUploadInput struct { // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. // + // When using this API with Amazon S3 on Outposts, you must direct requests + // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When + // using this operation using S3 on Outposts through the AWS SDKs, you provide + // the Outposts bucket ARN in place of the bucket name. For more information + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // in the Amazon Simple Storage Service Developer Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -10266,6 +10297,17 @@ func (s *AbortMultipartUploadInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *AbortMultipartUploadInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type AbortMultipartUploadOutput struct { _ struct{} `type:"structure"` @@ -11392,10 +11434,36 @@ func (s *CompleteMultipartUploadInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *CompleteMultipartUploadInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type CompleteMultipartUploadOutput struct { _ struct{} `type:"structure"` // The name of the bucket that contains the newly created object. + // + // When using this API with an access point, you must direct requests to the + // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // When using this operation using an access point through the AWS SDKs, you + // provide 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/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. + // + // When using this API with Amazon S3 on Outposts, you must direct requests + // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When + // using this operation using S3 on Outposts through the AWS SDKs, you provide + // the Outposts bucket ARN in place of the bucket name. For more information + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // in the Amazon Simple Storage Service Developer Guide. Bucket *string `type:"string"` // Entity tag that identifies the newly created object's data. Objects with @@ -11652,6 +11720,21 @@ type CopyObjectInput struct { // The name of the destination bucket. // + // When using this API with an access point, you must direct requests to the + // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // When using this operation using an access point through the AWS SDKs, you + // provide 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/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. + // + // When using this API with Amazon S3 on Outposts, you must direct requests + // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When + // using this operation using S3 on Outposts through the AWS SDKs, you provide + // the Outposts bucket ARN in place of the bucket name. For more information + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // in the Amazon Simple Storage Service Developer Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -11690,7 +11773,12 @@ type CopyObjectInput struct { // the URL encoding of arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf. // The value must be URL encoded. Amazon S3 supports copy operations using // access points only when the source and destination buckets are in the - // same AWS Region. + // same AWS Region. Alternatively, for objects accessed through Amazon S3 + // on Outposts, specify the ARN of the object as accessed in the format arn:aws:s3-outposts:::outpost//object/. + // For example, to copy the object reports/january.pdf through outpost my-outpost + // owned by account 123456789012 in Region us-west-2, use the URL encoding + // of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf. + // The value must be URL encoded. // // To copy a specific version of an object, append ?versionId= to // the value (for example, awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893). @@ -12135,6 +12223,17 @@ func (s *CopyObjectInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *CopyObjectInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type CopyObjectOutput struct { _ struct{} `type:"structure" payload:"CopyObjectResult"` @@ -12496,6 +12595,21 @@ type CreateMultipartUploadInput struct { // The name of the bucket to which to initiate the upload // + // When using this API with an access point, you must direct requests to the + // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // When using this operation using an access point through the AWS SDKs, you + // provide 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/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. + // + // When using this API with Amazon S3 on Outposts, you must direct requests + // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When + // using this operation using S3 on Outposts through the AWS SDKs, you provide + // the Outposts bucket ARN in place of the bucket name. For more information + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // in the Amazon Simple Storage Service Developer Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -12833,6 +12947,17 @@ func (s *CreateMultipartUploadInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *CreateMultipartUploadInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type CreateMultipartUploadOutput struct { _ struct{} `type:"structure"` @@ -12852,7 +12977,7 @@ type CreateMultipartUploadOutput struct { // incomplete multipart uploads. AbortRuleId *string `location:"header" locationName:"x-amz-abort-rule-id" type:"string"` - // Name of the bucket to which the multipart upload was initiated. + // The name of the bucket to which the multipart upload was initiated. // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. @@ -12860,6 +12985,14 @@ type CreateMultipartUploadOutput struct { // provide 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/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. + // + // When using this API with Amazon S3 on Outposts, you must direct requests + // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When + // using this operation using S3 on Outposts through the AWS SDKs, you provide + // the Outposts bucket ARN in place of the bucket name. For more information + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // in the Amazon Simple Storage Service Developer Guide. Bucket *string `locationName:"Bucket" type:"string"` // Object key for which the multipart upload was initiated. @@ -13170,6 +13303,17 @@ func (s *DeleteBucketAnalyticsConfigurationInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *DeleteBucketAnalyticsConfigurationInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type DeleteBucketAnalyticsConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -13257,6 +13401,17 @@ func (s *DeleteBucketCorsInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *DeleteBucketCorsInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type DeleteBucketCorsOutput struct { _ struct{} `type:"structure"` } @@ -13345,6 +13500,17 @@ func (s *DeleteBucketEncryptionInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *DeleteBucketEncryptionInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type DeleteBucketEncryptionOutput struct { _ struct{} `type:"structure"` } @@ -13432,6 +13598,17 @@ func (s *DeleteBucketInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *DeleteBucketInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type DeleteBucketInventoryConfigurationInput struct { _ struct{} `locationName:"DeleteBucketInventoryConfigurationRequest" type:"structure"` @@ -13519,6 +13696,17 @@ func (s *DeleteBucketInventoryConfigurationInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *DeleteBucketInventoryConfigurationInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type DeleteBucketInventoryConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -13606,6 +13794,17 @@ func (s *DeleteBucketLifecycleInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *DeleteBucketLifecycleInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type DeleteBucketLifecycleOutput struct { _ struct{} `type:"structure"` } @@ -13707,6 +13906,17 @@ func (s *DeleteBucketMetricsConfigurationInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *DeleteBucketMetricsConfigurationInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type DeleteBucketMetricsConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -13808,6 +14018,17 @@ func (s *DeleteBucketPolicyInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *DeleteBucketPolicyInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type DeleteBucketPolicyOutput struct { _ struct{} `type:"structure"` } @@ -13895,6 +14116,17 @@ func (s *DeleteBucketReplicationInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *DeleteBucketReplicationInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type DeleteBucketReplicationOutput struct { _ struct{} `type:"structure"` } @@ -13982,6 +14214,17 @@ func (s *DeleteBucketTaggingInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *DeleteBucketTaggingInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type DeleteBucketTaggingOutput struct { _ struct{} `type:"structure"` } @@ -14069,6 +14312,17 @@ func (s *DeleteBucketWebsiteInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *DeleteBucketWebsiteInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type DeleteBucketWebsiteOutput struct { _ struct{} `type:"structure"` } @@ -14193,6 +14447,14 @@ type DeleteObjectInput struct { // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. // + // When using this API with Amazon S3 on Outposts, you must direct requests + // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When + // using this operation using S3 on Outposts through the AWS SDKs, you provide + // the Outposts bucket ARN in place of the bucket name. For more information + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // in the Amazon Simple Storage Service Developer Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -14322,6 +14584,17 @@ func (s *DeleteObjectInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *DeleteObjectInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type DeleteObjectOutput struct { _ struct{} `type:"structure"` @@ -14378,6 +14651,14 @@ type DeleteObjectTaggingInput struct { // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. // + // When using this API with Amazon S3 on Outposts, you must direct requests + // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When + // using this operation using S3 on Outposts through the AWS SDKs, you provide + // the Outposts bucket ARN in place of the bucket name. For more information + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // in the Amazon Simple Storage Service Developer Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -14472,6 +14753,17 @@ func (s *DeleteObjectTaggingInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *DeleteObjectTaggingInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type DeleteObjectTaggingOutput struct { _ struct{} `type:"structure"` @@ -14507,6 +14799,14 @@ type DeleteObjectsInput struct { // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. // + // When using this API with Amazon S3 on Outposts, you must direct requests + // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When + // using this operation using S3 on Outposts through the AWS SDKs, you provide + // the Outposts bucket ARN in place of the bucket name. For more information + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // in the Amazon Simple Storage Service Developer Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -14630,6 +14930,17 @@ func (s *DeleteObjectsInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *DeleteObjectsInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type DeleteObjectsOutput struct { _ struct{} `type:"structure"` @@ -14747,6 +15058,17 @@ func (s *DeletePublicAccessBlockInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *DeletePublicAccessBlockInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type DeletePublicAccessBlockOutput struct { _ struct{} `type:"structure"` } @@ -15610,7 +15932,7 @@ func (s *FilterRule) SetValue(v string) *FilterRule { type GetBucketAccelerateConfigurationInput struct { _ struct{} `locationName:"GetBucketAccelerateConfigurationRequest" type:"structure"` - // Name of the bucket for which the accelerate configuration is retrieved. + // The name of the bucket for which the accelerate configuration is retrieved. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -15680,6 +16002,17 @@ func (s *GetBucketAccelerateConfigurationInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetBucketAccelerateConfigurationInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetBucketAccelerateConfigurationOutput struct { _ struct{} `type:"structure"` @@ -15776,6 +16109,17 @@ func (s *GetBucketAclInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetBucketAclInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetBucketAclOutput struct { _ struct{} `type:"structure"` @@ -15895,6 +16239,17 @@ func (s *GetBucketAnalyticsConfigurationInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetBucketAnalyticsConfigurationInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetBucketAnalyticsConfigurationOutput struct { _ struct{} `type:"structure" payload:"AnalyticsConfiguration"` @@ -15991,6 +16346,17 @@ func (s *GetBucketCorsInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetBucketCorsInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetBucketCorsOutput struct { _ struct{} `type:"structure"` @@ -16089,6 +16455,17 @@ func (s *GetBucketEncryptionInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetBucketEncryptionInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetBucketEncryptionOutput struct { _ struct{} `type:"structure" payload:"ServerSideEncryptionConfiguration"` @@ -16199,6 +16576,17 @@ func (s *GetBucketInventoryConfigurationInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetBucketInventoryConfigurationInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetBucketInventoryConfigurationOutput struct { _ struct{} `type:"structure" payload:"InventoryConfiguration"` @@ -16295,6 +16683,17 @@ func (s *GetBucketLifecycleConfigurationInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetBucketLifecycleConfigurationInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetBucketLifecycleConfigurationOutput struct { _ struct{} `type:"structure"` @@ -16391,6 +16790,17 @@ func (s *GetBucketLifecycleInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetBucketLifecycleInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetBucketLifecycleOutput struct { _ struct{} `type:"structure"` @@ -16487,6 +16897,17 @@ func (s *GetBucketLocationInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetBucketLocationInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetBucketLocationOutput struct { _ struct{} `type:"structure"` @@ -16585,6 +17006,17 @@ func (s *GetBucketLoggingInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetBucketLoggingInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetBucketLoggingOutput struct { _ struct{} `type:"structure"` @@ -16698,6 +17130,17 @@ func (s *GetBucketMetricsConfigurationInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetBucketMetricsConfigurationInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetBucketMetricsConfigurationOutput struct { _ struct{} `type:"structure" payload:"MetricsConfiguration"` @@ -16724,7 +17167,7 @@ func (s *GetBucketMetricsConfigurationOutput) SetMetricsConfiguration(v *Metrics type GetBucketNotificationConfigurationRequest struct { _ struct{} `locationName:"GetBucketNotificationConfigurationRequest" type:"structure"` - // Name of the bucket for which to get the notification configuration. + // The name of the bucket for which to get the notification configuration. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -16794,6 +17237,17 @@ func (s *GetBucketNotificationConfigurationRequest) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetBucketNotificationConfigurationRequest) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetBucketPolicyInput struct { _ struct{} `locationName:"GetBucketPolicyRequest" type:"structure"` @@ -16867,6 +17321,17 @@ func (s *GetBucketPolicyInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetBucketPolicyInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetBucketPolicyOutput struct { _ struct{} `type:"structure" payload:"Policy"` @@ -16963,6 +17428,17 @@ func (s *GetBucketPolicyStatusInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetBucketPolicyStatusInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetBucketPolicyStatusOutput struct { _ struct{} `type:"structure" payload:"PolicyStatus"` @@ -17059,6 +17535,17 @@ func (s *GetBucketReplicationInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetBucketReplicationInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetBucketReplicationOutput struct { _ struct{} `type:"structure" payload:"ReplicationConfiguration"` @@ -17156,6 +17643,17 @@ func (s *GetBucketRequestPaymentInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetBucketRequestPaymentInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetBucketRequestPaymentOutput struct { _ struct{} `type:"structure"` @@ -17252,6 +17750,17 @@ func (s *GetBucketTaggingInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetBucketTaggingInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetBucketTaggingOutput struct { _ struct{} `type:"structure"` @@ -17350,6 +17859,17 @@ func (s *GetBucketVersioningInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetBucketVersioningInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetBucketVersioningOutput struct { _ struct{} `type:"structure"` @@ -17457,6 +17977,17 @@ func (s *GetBucketWebsiteInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetBucketWebsiteInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetBucketWebsiteOutput struct { _ struct{} `type:"structure"` @@ -17627,6 +18158,17 @@ func (s *GetObjectAclInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetObjectAclInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetObjectAclOutput struct { _ struct{} `type:"structure"` @@ -17681,6 +18223,14 @@ type GetObjectInput struct { // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. // + // When using this API with Amazon S3 on Outposts, you must direct requests + // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When + // using this operation using S3 on Outposts through the AWS SDKs, you provide + // the Outposts bucket ARN in place of the bucket name. For more information + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // in the Amazon Simple Storage Service Developer Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -17947,6 +18497,17 @@ func (s *GetObjectInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetObjectInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetObjectLegalHoldInput struct { _ struct{} `locationName:"GetObjectLegalHoldRequest" type:"structure"` @@ -18067,6 +18628,17 @@ func (s *GetObjectLegalHoldInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetObjectLegalHoldInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetObjectLegalHoldOutput struct { _ struct{} `type:"structure" payload:"LegalHold"` @@ -18095,6 +18667,13 @@ type GetObjectLockConfigurationInput struct { // The bucket whose Object Lock configuration you want to retrieve. // + // When using this API with an access point, you must direct requests to the + // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // When using this operation using an access point through the AWS SDKs, you + // provide 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/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -18163,6 +18742,17 @@ func (s *GetObjectLockConfigurationInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetObjectLockConfigurationInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetObjectLockConfigurationOutput struct { _ struct{} `type:"structure" payload:"ObjectLockConfiguration"` @@ -18627,6 +19217,17 @@ func (s *GetObjectRetentionInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetObjectRetentionInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetObjectRetentionOutput struct { _ struct{} `type:"structure" payload:"Retention"` @@ -18662,6 +19263,14 @@ type GetObjectTaggingInput struct { // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. // + // When using this API with Amazon S3 on Outposts, you must direct requests + // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When + // using this operation using S3 on Outposts through the AWS SDKs, you provide + // the Outposts bucket ARN in place of the bucket name. For more information + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // in the Amazon Simple Storage Service Developer Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -18756,6 +19365,17 @@ func (s *GetObjectTaggingInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetObjectTaggingInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetObjectTaggingOutput struct { _ struct{} `type:"structure"` @@ -18894,6 +19514,17 @@ func (s *GetObjectTorrentInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetObjectTorrentInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetObjectTorrentOutput struct { _ struct{} `type:"structure" payload:"Body"` @@ -19001,6 +19632,17 @@ func (s *GetPublicAccessBlockInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetPublicAccessBlockInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type GetPublicAccessBlockOutput struct { _ struct{} `type:"structure" payload:"PublicAccessBlockConfiguration"` @@ -19215,6 +19857,21 @@ type HeadBucketInput struct { // The bucket name. // + // When using this API with an access point, you must direct requests to the + // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // When using this operation using an access point through the AWS SDKs, you + // provide 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/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. + // + // When using this API with Amazon S3 on Outposts, you must direct requests + // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When + // using this operation using S3 on Outposts through the AWS SDKs, you provide + // the Outposts bucket ARN in place of the bucket name. For more information + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // in the Amazon Simple Storage Service Developer Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -19283,6 +19940,17 @@ func (s *HeadBucketInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *HeadBucketInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type HeadBucketOutput struct { _ struct{} `type:"structure"` } @@ -19302,6 +19970,21 @@ type HeadObjectInput struct { // The name of the bucket containing the object. // + // When using this API with an access point, you must direct requests to the + // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // When using this operation using an access point through the AWS SDKs, you + // provide 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/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. + // + // When using this API with Amazon S3 on Outposts, you must direct requests + // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When + // using this operation using S3 on Outposts through the AWS SDKs, you provide + // the Outposts bucket ARN in place of the bucket name. For more information + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // in the Amazon Simple Storage Service Developer Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -19514,6 +20197,17 @@ func (s *HeadObjectInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *HeadObjectInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type HeadObjectOutput struct { _ struct{} `type:"structure"` @@ -20974,6 +21668,17 @@ func (s *ListBucketAnalyticsConfigurationsInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *ListBucketAnalyticsConfigurationsInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type ListBucketAnalyticsConfigurationsOutput struct { _ struct{} `type:"structure"` @@ -21114,6 +21819,17 @@ func (s *ListBucketInventoryConfigurationsInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *ListBucketInventoryConfigurationsInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type ListBucketInventoryConfigurationsOutput struct { _ struct{} `type:"structure"` @@ -21254,6 +21970,17 @@ func (s *ListBucketMetricsConfigurationsInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *ListBucketMetricsConfigurationsInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type ListBucketMetricsConfigurationsOutput struct { _ struct{} `type:"structure"` @@ -21359,7 +22086,7 @@ func (s *ListBucketsOutput) SetOwner(v *Owner) *ListBucketsOutput { type ListMultipartUploadsInput struct { _ struct{} `locationName:"ListMultipartUploadsRequest" type:"structure"` - // Name of the bucket to which the multipart upload was initiated. + // The name of the bucket to which the multipart upload was initiated. // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. @@ -21368,6 +22095,14 @@ type ListMultipartUploadsInput struct { // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. // + // When using this API with Amazon S3 on Outposts, you must direct requests + // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When + // using this operation using S3 on Outposts through the AWS SDKs, you provide + // the Outposts bucket ARN in place of the bucket name. For more information + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // in the Amazon Simple Storage Service Developer Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -21519,10 +22254,21 @@ func (s *ListMultipartUploadsInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *ListMultipartUploadsInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type ListMultipartUploadsOutput struct { _ struct{} `type:"structure"` - // Name of the bucket to which the multipart upload was initiated. + // The name of the bucket to which the multipart upload was initiated. Bucket *string `type:"string"` // If you specify a delimiter in the request, then the result returns each distinct @@ -21670,13 +22416,6 @@ type ListObjectVersionsInput struct { // The bucket name that contains the objects. // - // When using this API with an access point, you must direct requests to the - // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. - // When using this operation using an access point through the AWS SDKs, you - // provide 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/dev/using-access-points.html) - // in the Amazon Simple Storage Service Developer Guide. - // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -21817,6 +22556,17 @@ func (s *ListObjectVersionsInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *ListObjectVersionsInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type ListObjectVersionsOutput struct { _ struct{} `type:"structure"` @@ -21857,7 +22607,7 @@ type ListObjectVersionsOutput struct { // Specifies the maximum number of objects to return. MaxKeys *int64 `type:"integer"` - // Bucket name. + // The bucket name. Name *string `type:"string"` // When the number of responses exceeds the value of MaxKeys, NextKeyMarker @@ -21974,6 +22724,21 @@ type ListObjectsInput struct { // The name of the bucket containing the objects. // + // When using this API with an access point, you must direct requests to the + // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // When using this operation using an access point through the AWS SDKs, you + // provide 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/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. + // + // When using this API with Amazon S3 on Outposts, you must direct requests + // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When + // using this operation using S3 on Outposts through the AWS SDKs, you provide + // the Outposts bucket ARN in place of the bucket name. For more information + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // in the Amazon Simple Storage Service Developer Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -22105,6 +22870,17 @@ func (s *ListObjectsInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *ListObjectsInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type ListObjectsOutput struct { _ struct{} `type:"structure"` @@ -22149,7 +22925,7 @@ type ListObjectsOutput struct { // The maximum number of keys returned in the response body. MaxKeys *int64 `type:"integer"` - // Bucket name. + // The bucket name. Name *string `type:"string"` // When response is truncated (the IsTruncated element value in the response @@ -22247,6 +23023,14 @@ type ListObjectsV2Input struct { // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. // + // When using this API with Amazon S3 on Outposts, you must direct requests + // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When + // using this operation using S3 on Outposts through the AWS SDKs, you provide + // the Outposts bucket ARN in place of the bucket name. For more information + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // in the Amazon Simple Storage Service Developer Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -22396,6 +23180,17 @@ func (s *ListObjectsV2Input) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *ListObjectsV2Input) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type ListObjectsV2Output struct { _ struct{} `type:"structure"` @@ -22453,7 +23248,7 @@ type ListObjectsV2Output struct { // but will never contain more. MaxKeys *int64 `type:"integer"` - // Bucket name. + // The bucket name. // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. @@ -22461,6 +23256,14 @@ type ListObjectsV2Output struct { // provide 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/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. + // + // When using this API with Amazon S3 on Outposts, you must direct requests + // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When + // using this operation using S3 on Outposts through the AWS SDKs, you provide + // the Outposts bucket ARN in place of the bucket name. For more information + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // in the Amazon Simple Storage Service Developer Guide. Name *string `type:"string"` // NextContinuationToken is sent when isTruncated is true, which means there @@ -22561,7 +23364,7 @@ func (s *ListObjectsV2Output) SetStartAfter(v string) *ListObjectsV2Output { type ListPartsInput struct { _ struct{} `locationName:"ListPartsRequest" type:"structure"` - // Name of the bucket to which the parts are being uploaded. + // The name of the bucket to which the parts are being uploaded. // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. @@ -22570,6 +23373,14 @@ type ListPartsInput struct { // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. // + // When using this API with Amazon S3 on Outposts, you must direct requests + // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When + // using this operation using S3 on Outposts through the AWS SDKs, you provide + // the Outposts bucket ARN in place of the bucket name. For more information + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // in the Amazon Simple Storage Service Developer Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -22701,6 +23512,17 @@ func (s *ListPartsInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *ListPartsInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type ListPartsOutput struct { _ struct{} `type:"structure"` @@ -22720,7 +23542,7 @@ type ListPartsOutput struct { // incomplete multipart uploads. AbortRuleId *string `location:"header" locationName:"x-amz-abort-rule-id" type:"string"` - // Name of the bucket to which the multipart upload was initiated. + // The name of the bucket to which the multipart upload was initiated. Bucket *string `type:"string"` // Container element that identifies who initiated the multipart upload. If @@ -24375,7 +25197,7 @@ type PutBucketAccelerateConfigurationInput struct { // AccelerateConfiguration is a required field AccelerateConfiguration *AccelerateConfiguration `locationName:"AccelerateConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"` - // Name of the bucket for which the accelerate configuration is set. + // The name of the bucket for which the accelerate configuration is set. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -24454,6 +25276,17 @@ func (s *PutBucketAccelerateConfigurationInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutBucketAccelerateConfigurationInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type PutBucketAccelerateConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -24610,6 +25443,17 @@ func (s *PutBucketAclInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutBucketAclInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type PutBucketAclOutput struct { _ struct{} `type:"structure"` } @@ -24730,6 +25574,17 @@ func (s *PutBucketAnalyticsConfigurationInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutBucketAnalyticsConfigurationInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type PutBucketAnalyticsConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -24839,6 +25694,17 @@ func (s *PutBucketCorsInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutBucketCorsInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type PutBucketCorsOutput struct { _ struct{} `type:"structure"` } @@ -24949,6 +25815,17 @@ func (s *PutBucketEncryptionInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutBucketEncryptionInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type PutBucketEncryptionOutput struct { _ struct{} `type:"structure"` } @@ -25069,6 +25946,17 @@ func (s *PutBucketInventoryConfigurationInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutBucketInventoryConfigurationInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type PutBucketInventoryConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -25170,6 +26058,17 @@ func (s *PutBucketLifecycleConfigurationInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutBucketLifecycleConfigurationInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type PutBucketLifecycleConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -25269,6 +26168,17 @@ func (s *PutBucketLifecycleInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutBucketLifecycleInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type PutBucketLifecycleOutput struct { _ struct{} `type:"structure"` } @@ -25375,6 +26285,17 @@ func (s *PutBucketLoggingInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutBucketLoggingInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type PutBucketLoggingOutput struct { _ struct{} `type:"structure"` } @@ -25495,6 +26416,17 @@ func (s *PutBucketMetricsConfigurationInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutBucketMetricsConfigurationInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type PutBucketMetricsConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -25602,6 +26534,17 @@ func (s *PutBucketNotificationConfigurationInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutBucketNotificationConfigurationInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type PutBucketNotificationConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -25703,6 +26646,17 @@ func (s *PutBucketNotificationInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutBucketNotificationInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type PutBucketNotificationOutput struct { _ struct{} `type:"structure"` } @@ -25814,6 +26768,17 @@ func (s *PutBucketPolicyInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutBucketPolicyInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type PutBucketPolicyOutput struct { _ struct{} `type:"structure"` } @@ -25929,6 +26894,17 @@ func (s *PutBucketReplicationInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutBucketReplicationInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type PutBucketReplicationOutput struct { _ struct{} `type:"structure"` } @@ -26035,6 +27011,17 @@ func (s *PutBucketRequestPaymentInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutBucketRequestPaymentInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type PutBucketRequestPaymentOutput struct { _ struct{} `type:"structure"` } @@ -26141,6 +27128,17 @@ func (s *PutBucketTaggingInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutBucketTaggingInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type PutBucketTaggingOutput struct { _ struct{} `type:"structure"` } @@ -26252,6 +27250,17 @@ func (s *PutBucketVersioningInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutBucketVersioningInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type PutBucketVersioningOutput struct { _ struct{} `type:"structure"` } @@ -26358,6 +27367,17 @@ func (s *PutBucketWebsiteInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutBucketWebsiteInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type PutBucketWebsiteOutput struct { _ struct{} `type:"structure"` } @@ -26418,6 +27438,21 @@ type PutObjectAclInput struct { // Key for which the PUT operation was initiated. // + // When using this API with an access point, you must direct requests to the + // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // When using this operation using an access point through the AWS SDKs, you + // provide 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/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. + // + // When using this API with Amazon S3 on Outposts, you must direct requests + // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When + // using this operation using S3 on Outposts through the AWS SDKs, you provide + // the Outposts bucket ARN in place of the bucket name. For more information + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // in the Amazon Simple Storage Service Developer Guide. + // // Key is a required field Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"` @@ -26562,6 +27597,17 @@ func (s *PutObjectAclInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutObjectAclInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type PutObjectAclOutput struct { _ struct{} `type:"structure"` @@ -26596,7 +27642,7 @@ type PutObjectInput struct { // Object data. Body io.ReadSeeker `type:"blob"` - // Bucket name to which the PUT operation was initiated. + // The bucket name to which the PUT operation was initiated. // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. @@ -26605,6 +27651,14 @@ type PutObjectInput struct { // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. // + // When using this API with Amazon S3 on Outposts, you must direct requests + // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When + // using this operation using S3 on Outposts through the AWS SDKs, you provide + // the Outposts bucket ARN in place of the bucket name. For more information + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // in the Amazon Simple Storage Service Developer Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -27001,6 +28055,17 @@ func (s *PutObjectInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutObjectInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type PutObjectLegalHoldInput struct { _ struct{} `locationName:"PutObjectLegalHoldRequest" type:"structure" payload:"LegalHold"` @@ -27131,6 +28196,17 @@ func (s *PutObjectLegalHoldInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutObjectLegalHoldInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type PutObjectLegalHoldOutput struct { _ struct{} `type:"structure"` @@ -27259,6 +28335,17 @@ func (s *PutObjectLockConfigurationInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutObjectLockConfigurationInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type PutObjectLockConfigurationOutput struct { _ struct{} `type:"structure"` @@ -27535,6 +28622,17 @@ func (s *PutObjectRetentionInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutObjectRetentionInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type PutObjectRetentionOutput struct { _ struct{} `type:"structure"` @@ -27571,6 +28669,14 @@ type PutObjectTaggingInput struct { // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. // + // When using this API with Amazon S3 on Outposts, you must direct requests + // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When + // using this operation using S3 on Outposts through the AWS SDKs, you provide + // the Outposts bucket ARN in place of the bucket name. For more information + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // in the Amazon Simple Storage Service Developer Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -27684,6 +28790,17 @@ func (s *PutObjectTaggingInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutObjectTaggingInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type PutObjectTaggingOutput struct { _ struct{} `type:"structure"` @@ -27799,6 +28916,17 @@ func (s *PutPublicAccessBlockInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutPublicAccessBlockInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type PutPublicAccessBlockOutput struct { _ struct{} `type:"structure"` } @@ -28652,6 +29780,14 @@ type RestoreObjectInput struct { // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. // + // When using this API with Amazon S3 on Outposts, you must direct requests + // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When + // using this operation using S3 on Outposts through the AWS SDKs, you provide + // the Outposts bucket ARN in place of the bucket name. For more information + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // in the Amazon Simple Storage Service Developer Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -28773,6 +29909,17 @@ func (s *RestoreObjectInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *RestoreObjectInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type RestoreObjectOutput struct { _ struct{} `type:"structure"` @@ -29586,6 +30733,17 @@ func (s *SelectObjectContentInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *SelectObjectContentInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type SelectObjectContentOutput struct { _ struct{} `type:"structure" payload:"Payload"` @@ -30250,7 +31408,7 @@ type TargetGrant struct { // Container for the person being granted permissions. Grantee *Grantee `type:"structure" xmlPrefix:"xsi" xmlURI:"http://www.w3.org/2001/XMLSchema-instance"` - // Logging permissions assigned to the Grantee for the bucket. + // Logging permissions assigned to the grantee for the bucket. Permission *string `type:"string" enum:"BucketLogsPermission"` } @@ -30481,6 +31639,21 @@ type UploadPartCopyInput struct { // The bucket name. // + // When using this API with an access point, you must direct requests to the + // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // When using this operation using an access point through the AWS SDKs, you + // provide 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/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. + // + // When using this API with Amazon S3 on Outposts, you must direct requests + // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When + // using this operation using S3 on Outposts through the AWS SDKs, you provide + // the Outposts bucket ARN in place of the bucket name. For more information + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // in the Amazon Simple Storage Service Developer Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -30496,12 +31669,17 @@ type UploadPartCopyInput struct { // * For objects accessed through access points, specify the Amazon Resource // Name (ARN) of the object as accessed through the access point, in the // format arn:aws:s3:::accesspoint//object/. - // For example, to copy the object reports/january.pdf through the access - // point my-access-point owned by account 123456789012 in Region us-west-2, - // use the URL encoding of arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf. + // For example, to copy the object reports/january.pdf through access point + // my-access-point owned by account 123456789012 in Region us-west-2, use + // the URL encoding of arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf. // The value must be URL encoded. Amazon S3 supports copy operations using // access points only when the source and destination buckets are in the - // same AWS Region. + // same AWS Region. Alternatively, for objects accessed through Amazon S3 + // on Outposts, specify the ARN of the object as accessed in the format arn:aws:s3-outposts:::outpost//object/. + // For example, to copy the object reports/january.pdf through outpost my-outpost + // owned by account 123456789012 in Region us-west-2, use the URL encoding + // of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf. + // The value must be URL encoded. // // To copy a specific version of an object, append ?versionId= to // the value (for example, awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893). @@ -30786,6 +31964,17 @@ func (s *UploadPartCopyInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *UploadPartCopyInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type UploadPartCopyOutput struct { _ struct{} `type:"structure" payload:"CopyPartResult"` @@ -30878,7 +32067,22 @@ type UploadPartInput struct { // Object data. Body io.ReadSeeker `type:"blob"` - // Name of the bucket to which the multipart upload was initiated. + // The name of the bucket to which the multipart upload was initiated. + // + // When using this API with an access point, you must direct requests to the + // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. + // When using this operation using an access point through the AWS SDKs, you + // provide 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/dev/using-access-points.html) + // in the Amazon Simple Storage Service Developer Guide. + // + // When using this API with Amazon S3 on Outposts, you must direct requests + // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When + // using this operation using S3 on Outposts through the AWS SDKs, you provide + // the Outposts bucket ARN in place of the bucket name. For more information + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // in the Amazon Simple Storage Service Developer Guide. // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` @@ -31076,6 +32280,17 @@ func (s *UploadPartInput) hasEndpointARN() bool { return arn.IsARN(*s.Bucket) } +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *UploadPartInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + type UploadPartOutput struct { _ struct{} `type:"structure"` @@ -31984,6 +33199,9 @@ const ( // ObjectStorageClassDeepArchive is a ObjectStorageClass enum value ObjectStorageClassDeepArchive = "DEEP_ARCHIVE" + + // ObjectStorageClassOutposts is a ObjectStorageClass enum value + ObjectStorageClassOutposts = "OUTPOSTS" ) // ObjectStorageClass_Values returns all elements of the ObjectStorageClass enum @@ -31996,6 +33214,7 @@ func ObjectStorageClass_Values() []string { ObjectStorageClassOnezoneIa, ObjectStorageClassIntelligentTiering, ObjectStorageClassDeepArchive, + ObjectStorageClassOutposts, } } @@ -32251,6 +33470,9 @@ const ( // StorageClassDeepArchive is a StorageClass enum value StorageClassDeepArchive = "DEEP_ARCHIVE" + + // StorageClassOutposts is a StorageClass enum value + StorageClassOutposts = "OUTPOSTS" ) // StorageClass_Values returns all elements of the StorageClass enum @@ -32263,6 +33485,7 @@ func StorageClass_Values() []string { StorageClassIntelligentTiering, StorageClassGlacier, StorageClassDeepArchive, + StorageClassOutposts, } } diff --git a/service/s3/customizations.go b/service/s3/customizations.go index a7698d5eb94..f1959b03a95 100644 --- a/service/s3/customizations.go +++ b/service/s3/customizations.go @@ -3,8 +3,8 @@ package s3 import ( "github.com/aws/aws-sdk-go/aws/client" "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/internal/s3err" - "github.com/aws/aws-sdk-go/service/s3/internal/arn" + "github.com/aws/aws-sdk-go/internal/s3shared/arn" + "github.com/aws/aws-sdk-go/internal/s3shared/s3err" ) func init() { @@ -69,6 +69,8 @@ type copySourceSSECustomerKeyGetter interface { getCopySourceSSECustomerKey() string } +// endpointARNGetter is an accessor interface to grab the +// the field corresponding to an endpoint ARN input. type endpointARNGetter interface { getEndpointARN() (arn.Resource, error) hasEndpointARN() bool diff --git a/service/s3/endpoint.go b/service/s3/endpoint.go index c4048fbfb66..403aebb688c 100644 --- a/service/s3/endpoint.go +++ b/service/s3/endpoint.go @@ -6,11 +6,9 @@ import ( "github.com/aws/aws-sdk-go/aws" awsarn "github.com/aws/aws-sdk-go/aws/arn" - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/endpoints" "github.com/aws/aws-sdk-go/aws/request" - "github.com/aws/aws-sdk-go/private/protocol" - "github.com/aws/aws-sdk-go/service/s3/internal/arn" + "github.com/aws/aws-sdk-go/internal/s3shared" + "github.com/aws/aws-sdk-go/internal/s3shared/arn" ) // Used by shapes with members decorated as endpoint ARN. @@ -22,12 +20,66 @@ func accessPointResourceParser(a awsarn.ARN) (arn.Resource, error) { resParts := arn.SplitResource(a.Resource) switch resParts[0] { case "accesspoint": + if a.Service != "s3" { + return arn.AccessPointARN{}, arn.InvalidARNError{ARN: a, Reason: "service is not s3"} + } return arn.ParseAccessPointResource(a, resParts[1:]) + case "outpost": + if a.Service != "s3-outposts" { + return arn.OutpostAccessPointARN{}, arn.InvalidARNError{ARN: a, Reason: "service is not s3-outposts"} + } + return parseOutpostAccessPointResource(a, resParts[1:]) default: return nil, arn.InvalidARNError{ARN: a, Reason: "unknown resource type"} } } +// parseOutpostAccessPointResource attempts to parse the ARNs resource as an +// outpost access-point resource. +// +// Supported Outpost AccessPoint ARN format: +// - ARN format: arn:{partition}:s3-outposts:{region}:{accountId}:outpost/{outpostId}/accesspoint/{accesspointName} +// - example: arn:aws:s3-outposts:us-west-2:012345678901:outpost/op-1234567890123456/accesspoint/myaccesspoint +// +func parseOutpostAccessPointResource(a awsarn.ARN, resParts []string) (arn.OutpostAccessPointARN, error) { + // outpost accesspoint arn is only valid if service is s3-outposts + if a.Service != "s3-outposts" { + return arn.OutpostAccessPointARN{}, arn.InvalidARNError{ARN: a, Reason: "service is not s3-outposts"} + } + + if len(resParts) == 0 { + return arn.OutpostAccessPointARN{}, arn.InvalidARNError{ARN: a, Reason: "outpost resource-id not set"} + } + + if len(resParts) < 3 { + return arn.OutpostAccessPointARN{}, arn.InvalidARNError{ + ARN: a, Reason: "access-point resource not set in Outpost ARN", + } + } + + resID := strings.TrimSpace(resParts[0]) + if len(resID) == 0 { + return arn.OutpostAccessPointARN{}, arn.InvalidARNError{ARN: a, Reason: "outpost resource-id not set"} + } + + var outpostAccessPointARN = arn.OutpostAccessPointARN{} + switch resParts[1] { + case "accesspoint": + accessPointARN, err := arn.ParseAccessPointResource(a, resParts[2:]) + if err != nil { + return arn.OutpostAccessPointARN{}, err + } + // set access-point arn + outpostAccessPointARN.AccessPointARN = accessPointARN + default: + return arn.OutpostAccessPointARN{}, arn.InvalidARNError{ARN: a, Reason: "access-point resource not set in Outpost ARN"} + } + + // set outpost id + outpostAccessPointARN.OutpostID = resID + return outpostAccessPointARN, nil +} + func endpointHandler(req *request.Request) { endpoint, ok := req.Params.(endpointARNGetter) if !ok || !endpoint.hasEndpointARN() { @@ -37,29 +89,29 @@ func endpointHandler(req *request.Request) { resource, err := endpoint.getEndpointARN() if err != nil { - req.Error = newInvalidARNError(nil, err) + req.Error = s3shared.NewInvalidARNError(nil, err) return } - resReq := resourceRequest{ + resReq := s3shared.ResourceRequest{ Resource: resource, Request: req, } if resReq.IsCrossPartition() { - req.Error = newClientPartitionMismatchError(resource, + req.Error = s3shared.NewClientPartitionMismatchError(resource, req.ClientInfo.PartitionID, aws.StringValue(req.Config.Region), nil) return } if !resReq.AllowCrossRegion() && resReq.IsCrossRegion() { - req.Error = newClientRegionMismatchError(resource, + req.Error = s3shared.NewClientRegionMismatchError(resource, req.ClientInfo.PartitionID, aws.StringValue(req.Config.Region), nil) return } if resReq.HasCustomEndpoint() { - req.Error = newInvalidARNWithCustomEndpointError(resource, nil) + req.Error = s3shared.NewInvalidARNWithCustomEndpointError(resource, nil) return } @@ -69,47 +121,22 @@ func endpointHandler(req *request.Request) { if err != nil { req.Error = err } + case arn.OutpostAccessPointARN: + // outposts does not support FIPS regions + if resReq.ResourceConfiguredForFIPS() { + req.Error = s3shared.NewInvalidARNWithFIPSError(resource, nil) + return + } + + err = updateRequestOutpostAccessPointEndpoint(req, tv) + if err != nil { + req.Error = err + } default: - req.Error = newInvalidARNError(resource, nil) + req.Error = s3shared.NewInvalidARNError(resource, nil) } } -type resourceRequest struct { - Resource arn.Resource - Request *request.Request -} - -func (r resourceRequest) ARN() awsarn.ARN { - return r.Resource.GetARN() -} - -func (r resourceRequest) AllowCrossRegion() bool { - return aws.BoolValue(r.Request.Config.S3UseARNRegion) -} - -func (r resourceRequest) UseFIPS() bool { - return isFIPS(aws.StringValue(r.Request.Config.Region)) -} - -func (r resourceRequest) IsCrossPartition() bool { - return r.Request.ClientInfo.PartitionID != r.Resource.GetARN().Partition -} - -func (r resourceRequest) IsCrossRegion() bool { - return isCrossRegion(r.Request, r.Resource.GetARN().Region) -} - -func (r resourceRequest) HasCustomEndpoint() bool { - return len(aws.StringValue(r.Request.Config.Endpoint)) > 0 -} - -func isFIPS(clientRegion string) bool { - return strings.HasPrefix(clientRegion, "fips-") || strings.HasSuffix(clientRegion, "-fips") -} -func isCrossRegion(req *request.Request, otherRegion string) bool { - return req.ClientInfo.SigningRegion != otherRegion -} - func updateBucketEndpointFromParams(r *request.Request) { bucket, ok := bucketNameFromReqParams(r.Params) if !ok { @@ -124,7 +151,7 @@ func updateBucketEndpointFromParams(r *request.Request) { func updateRequestAccessPointEndpoint(req *request.Request, accessPoint arn.AccessPointARN) error { // Accelerate not supported if aws.BoolValue(req.Config.S3UseAccelerate) { - return newClientConfiguredForAccelerateError(accessPoint, + return s3shared.NewClientConfiguredForAccelerateError(accessPoint, req.ClientInfo.PartitionID, aws.StringValue(req.Config.Region), nil) } @@ -132,7 +159,7 @@ func updateRequestAccessPointEndpoint(req *request.Request, accessPoint arn.Acce // are not supported. req.Config.DisableEndpointHostPrefix = aws.Bool(false) - if err := accessPointEndpointBuilder(accessPoint).Build(req); err != nil { + if err := accessPointEndpointBuilder(accessPoint).build(req); err != nil { return err } @@ -141,93 +168,34 @@ func updateRequestAccessPointEndpoint(req *request.Request, accessPoint arn.Acce return nil } -func removeBucketFromPath(u *url.URL) { - u.Path = strings.Replace(u.Path, "/{Bucket}", "", -1) - if u.Path == "" { - u.Path = "/" +func updateRequestOutpostAccessPointEndpoint(req *request.Request, accessPoint arn.OutpostAccessPointARN) error { + // Accelerate not supported + if aws.BoolValue(req.Config.S3UseAccelerate) { + return s3shared.NewClientConfiguredForAccelerateError(accessPoint, + req.ClientInfo.PartitionID, aws.StringValue(req.Config.Region), nil) } -} - -type accessPointEndpointBuilder arn.AccessPointARN - -const ( - accessPointPrefixLabel = "accesspoint" - accountIDPrefixLabel = "accountID" - accesPointPrefixTemplate = "{" + accessPointPrefixLabel + "}-{" + accountIDPrefixLabel + "}." -) -func (a accessPointEndpointBuilder) Build(req *request.Request) error { - resolveRegion := arn.AccessPointARN(a).Region - cfgRegion := aws.StringValue(req.Config.Region) - - if isFIPS(cfgRegion) { - if aws.BoolValue(req.Config.S3UseARNRegion) && isCrossRegion(req, resolveRegion) { - // FIPS with cross region is not supported, the SDK must fail - // because there is no well defined method for SDK to construct a - // correct FIPS endpoint. - return newClientConfiguredForCrossRegionFIPSError(arn.AccessPointARN(a), - req.ClientInfo.PartitionID, cfgRegion, nil) - } - resolveRegion = cfgRegion + // Dualstack not supported + if aws.BoolValue(req.Config.UseDualStack) { + return s3shared.NewClientConfiguredForDualStackError(accessPoint, + req.ClientInfo.PartitionID, aws.StringValue(req.Config.Region), nil) } - endpoint, err := resolveRegionalEndpoint(req, resolveRegion) - if err != nil { - return newFailedToResolveEndpointError(arn.AccessPointARN(a), - req.ClientInfo.PartitionID, cfgRegion, err) - } + // Ignore the disable host prefix for access points since custom endpoints + // are not supported. + req.Config.DisableEndpointHostPrefix = aws.Bool(false) - if err = updateRequestEndpoint(req, endpoint.URL); err != nil { + if err := outpostAccessPointEndpointBuilder(accessPoint).build(req); err != nil { return err } - const serviceEndpointLabel = "s3-accesspoint" - - // dualstack provided by endpoint resolver - cfgHost := req.HTTPRequest.URL.Host - if strings.HasPrefix(cfgHost, "s3") { - req.HTTPRequest.URL.Host = serviceEndpointLabel + cfgHost[2:] - } - - protocol.HostPrefixBuilder{ - Prefix: accesPointPrefixTemplate, - LabelsFn: a.hostPrefixLabelValues, - }.Build(req) - - req.ClientInfo.SigningName = endpoint.SigningName - req.ClientInfo.SigningRegion = endpoint.SigningRegion - - err = protocol.ValidateEndpointHost(req.Operation.Name, req.HTTPRequest.URL.Host) - if err != nil { - return newInvalidARNError(arn.AccessPointARN(a), err) - } - + removeBucketFromPath(req.HTTPRequest.URL) return nil } -func (a accessPointEndpointBuilder) hostPrefixLabelValues() map[string]string { - return map[string]string{ - accessPointPrefixLabel: arn.AccessPointARN(a).AccessPointName, - accountIDPrefixLabel: arn.AccessPointARN(a).AccountID, - } -} - -func resolveRegionalEndpoint(r *request.Request, region string) (endpoints.ResolvedEndpoint, error) { - return r.Config.EndpointResolver.EndpointFor(EndpointsID, region, func(opts *endpoints.Options) { - opts.DisableSSL = aws.BoolValue(r.Config.DisableSSL) - opts.UseDualStack = aws.BoolValue(r.Config.UseDualStack) - opts.S3UsEast1RegionalEndpoint = endpoints.RegionalS3UsEast1Endpoint - }) -} - -func updateRequestEndpoint(r *request.Request, endpoint string) (err error) { - endpoint = endpoints.AddScheme(endpoint, aws.BoolValue(r.Config.DisableSSL)) - - r.HTTPRequest.URL, err = url.Parse(endpoint + r.Operation.HTTPPath) - if err != nil { - return awserr.New(request.ErrCodeSerialization, - "failed to parse endpoint URL", err) +func removeBucketFromPath(u *url.URL) { + u.Path = strings.Replace(u.Path, "/{Bucket}", "", -1) + if u.Path == "" { + u.Path = "/" } - - return nil } diff --git a/service/s3/endpoint_builder.go b/service/s3/endpoint_builder.go new file mode 100644 index 00000000000..c1c77da9adb --- /dev/null +++ b/service/s3/endpoint_builder.go @@ -0,0 +1,177 @@ +package s3 + +import ( + "net/url" + "strings" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awserr" + "github.com/aws/aws-sdk-go/aws/endpoints" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/internal/s3shared" + "github.com/aws/aws-sdk-go/internal/s3shared/arn" + "github.com/aws/aws-sdk-go/private/protocol" +) + +const ( + accessPointPrefixLabel = "accesspoint" + accountIDPrefixLabel = "accountID" + accessPointPrefixTemplate = "{" + accessPointPrefixLabel + "}-{" + accountIDPrefixLabel + "}." + + outpostPrefixLabel = "outpost" + outpostAccessPointPrefixTemplate = accessPointPrefixTemplate + "{" + outpostPrefixLabel + "}." +) + +// accessPointEndpointBuilder represents the endpoint builder for access point arn +type accessPointEndpointBuilder arn.AccessPointARN + +// build builds the endpoint for corresponding access point arn +// +// For building an endpoint from access point arn, format used is: +// - Access point endpoint format : {accesspointName}-{accountId}.s3-accesspoint.{region}.{dnsSuffix} +// - example : myaccesspoint-012345678901.s3-accesspoint.us-west-2.amazonaws.com +// +// Access Point Endpoint requests are signed using "s3" as signing name. +// +func (a accessPointEndpointBuilder) build(req *request.Request) error { + resolveService := arn.AccessPointARN(a).Service + resolveRegion := arn.AccessPointARN(a).Region + cfgRegion := aws.StringValue(req.Config.Region) + + if s3shared.IsFIPS(cfgRegion) { + if aws.BoolValue(req.Config.S3UseARNRegion) && s3shared.IsCrossRegion(req, resolveRegion) { + // FIPS with cross region is not supported, the SDK must fail + // because there is no well defined method for SDK to construct a + // correct FIPS endpoint. + return s3shared.NewClientConfiguredForCrossRegionFIPSError(arn.AccessPointARN(a), + req.ClientInfo.PartitionID, cfgRegion, nil) + } + resolveRegion = cfgRegion + } + + endpoint, err := resolveRegionalEndpoint(req, resolveRegion, resolveService) + if err != nil { + return s3shared.NewFailedToResolveEndpointError(arn.AccessPointARN(a), + req.ClientInfo.PartitionID, cfgRegion, err) + } + + if err = updateRequestEndpoint(req, endpoint.URL); err != nil { + return err + } + + const serviceEndpointLabel = "s3-accesspoint" + + // dual stack provided by endpoint resolver + cfgHost := req.HTTPRequest.URL.Host + if strings.HasPrefix(cfgHost, "s3") { + req.HTTPRequest.URL.Host = serviceEndpointLabel + cfgHost[2:] + } + + protocol.HostPrefixBuilder{ + Prefix: accessPointPrefixTemplate, + LabelsFn: a.hostPrefixLabelValues, + }.Build(req) + + // signer redirection + redirectSigner(req, endpoint.SigningName, endpoint.SigningRegion) + + err = protocol.ValidateEndpointHost(req.Operation.Name, req.HTTPRequest.URL.Host) + if err != nil { + return s3shared.NewInvalidARNError(arn.AccessPointARN(a), err) + } + + return nil +} + +func (a accessPointEndpointBuilder) hostPrefixLabelValues() map[string]string { + return map[string]string{ + accessPointPrefixLabel: arn.AccessPointARN(a).AccessPointName, + accountIDPrefixLabel: arn.AccessPointARN(a).AccountID, + } +} + +// outpostAccessPointEndpointBuilder represents the Endpoint builder for outpost access point arn. +type outpostAccessPointEndpointBuilder arn.OutpostAccessPointARN + +// build builds an endpoint corresponding to the outpost access point arn. +// +// For building an endpoint from outpost access point arn, format used is: +// - Outpost access point endpoint format : {accesspointName}-{accountId}.{outpostId}.s3-outposts.{region}.{dnsSuffix} +// - example : myaccesspoint-012345678901.op-01234567890123456.s3-outposts.us-west-2.amazonaws.com +// +// Outpost AccessPoint Endpoint request are signed using "s3-outposts" as signing name. +// +func (o outpostAccessPointEndpointBuilder) build(req *request.Request) error { + resolveRegion := o.Region + resolveService := o.Service + + endpointsID := resolveService + if resolveService == "s3-outposts" { + endpointsID = "s3" + } + + endpoint, err := resolveRegionalEndpoint(req, resolveRegion, endpointsID) + if err != nil { + return s3shared.NewFailedToResolveEndpointError(o, + req.ClientInfo.PartitionID, resolveRegion, err) + } + + if err = updateRequestEndpoint(req, endpoint.URL); err != nil { + return err + } + + // add url host as s3-outposts + cfgHost := req.HTTPRequest.URL.Host + if strings.HasPrefix(cfgHost, endpointsID) { + req.HTTPRequest.URL.Host = resolveService + cfgHost[len(endpointsID):] + } + + protocol.HostPrefixBuilder{ + Prefix: outpostAccessPointPrefixTemplate, + LabelsFn: o.hostPrefixLabelValues, + }.Build(req) + + // set the signing region, name to resolved names from ARN + redirectSigner(req, resolveService, resolveRegion) + + err = protocol.ValidateEndpointHost(req.Operation.Name, req.HTTPRequest.URL.Host) + if err != nil { + return s3shared.NewInvalidARNError(o, err) + } + + return nil +} + +func (o outpostAccessPointEndpointBuilder) hostPrefixLabelValues() map[string]string { + return map[string]string{ + accessPointPrefixLabel: o.AccessPointName, + accountIDPrefixLabel: o.AccountID, + outpostPrefixLabel: o.OutpostID, + } +} + +func resolveRegionalEndpoint(r *request.Request, region string, endpointsID string) (endpoints.ResolvedEndpoint, error) { + return r.Config.EndpointResolver.EndpointFor(endpointsID, region, func(opts *endpoints.Options) { + opts.DisableSSL = aws.BoolValue(r.Config.DisableSSL) + opts.UseDualStack = aws.BoolValue(r.Config.UseDualStack) + opts.S3UsEast1RegionalEndpoint = endpoints.RegionalS3UsEast1Endpoint + }) +} + +func updateRequestEndpoint(r *request.Request, endpoint string) (err error) { + endpoint = endpoints.AddScheme(endpoint, aws.BoolValue(r.Config.DisableSSL)) + + r.HTTPRequest.URL, err = url.Parse(endpoint + r.Operation.HTTPPath) + if err != nil { + return awserr.New(request.ErrCodeSerialization, + "failed to parse endpoint URL", err) + } + + return nil +} + +// redirectSigner sets signing name, signing region for a request +func redirectSigner(req *request.Request, signingName string, signingRegion string) { + req.ClientInfo.SigningName = signingName + req.ClientInfo.SigningRegion = signingRegion +} diff --git a/service/s3/endpoint_errors.go b/service/s3/endpoint_errors.go deleted file mode 100644 index 9df03e78d39..00000000000 --- a/service/s3/endpoint_errors.go +++ /dev/null @@ -1,151 +0,0 @@ -package s3 - -import ( - "fmt" - - "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/service/s3/internal/arn" -) - -const ( - invalidARNErrorErrCode = "InvalidARNError" - configurationErrorErrCode = "ConfigurationError" -) - -type invalidARNError struct { - message string - resource arn.Resource - origErr error -} - -func (e invalidARNError) Error() string { - var extra string - if e.resource != nil { - extra = "ARN: " + e.resource.String() - } - return awserr.SprintError(e.Code(), e.Message(), extra, e.origErr) -} - -func (e invalidARNError) Code() string { - return invalidARNErrorErrCode -} - -func (e invalidARNError) Message() string { - return e.message -} - -func (e invalidARNError) OrigErr() error { - return e.origErr -} - -func newInvalidARNError(resource arn.Resource, err error) invalidARNError { - return invalidARNError{ - message: "invalid ARN", - origErr: err, - resource: resource, - } -} - -func newInvalidARNWithCustomEndpointError(resource arn.Resource, err error) invalidARNError { - return invalidARNError{ - message: "resource ARN not supported with custom client endpoints", - origErr: err, - resource: resource, - } -} - -// ARN not supported for the target partition -func newInvalidARNWithUnsupportedPartitionError(resource arn.Resource, err error) invalidARNError { - return invalidARNError{ - message: "resource ARN not supported for the target ARN partition", - origErr: err, - resource: resource, - } -} - -type configurationError struct { - message string - resource arn.Resource - clientPartitionID string - clientRegion string - origErr error -} - -func (e configurationError) Error() string { - extra := fmt.Sprintf("ARN: %s, client partition: %s, client region: %s", - e.resource, e.clientPartitionID, e.clientRegion) - - return awserr.SprintError(e.Code(), e.Message(), extra, e.origErr) -} - -func (e configurationError) Code() string { - return configurationErrorErrCode -} - -func (e configurationError) Message() string { - return e.message -} - -func (e configurationError) OrigErr() error { - return e.origErr -} - -func newClientPartitionMismatchError(resource arn.Resource, clientPartitionID, clientRegion string, err error) configurationError { - return configurationError{ - message: "client partition does not match provided ARN partition", - origErr: err, - resource: resource, - clientPartitionID: clientPartitionID, - clientRegion: clientRegion, - } -} - -func newClientRegionMismatchError(resource arn.Resource, clientPartitionID, clientRegion string, err error) configurationError { - return configurationError{ - message: "client region does not match provided ARN region", - origErr: err, - resource: resource, - clientPartitionID: clientPartitionID, - clientRegion: clientRegion, - } -} - -func newFailedToResolveEndpointError(resource arn.Resource, clientPartitionID, clientRegion string, err error) configurationError { - return configurationError{ - message: "endpoint resolver failed to find an endpoint for the provided ARN region", - origErr: err, - resource: resource, - clientPartitionID: clientPartitionID, - clientRegion: clientRegion, - } -} - -func newClientConfiguredForFIPSError(resource arn.Resource, clientPartitionID, clientRegion string, err error) configurationError { - return configurationError{ - message: "client configured for fips but cross-region resource ARN provided", - origErr: err, - resource: resource, - clientPartitionID: clientPartitionID, - clientRegion: clientRegion, - } -} - -func newClientConfiguredForAccelerateError(resource arn.Resource, clientPartitionID, clientRegion string, err error) configurationError { - return configurationError{ - message: "client configured for S3 Accelerate but is supported with resource ARN", - origErr: err, - resource: resource, - clientPartitionID: clientPartitionID, - clientRegion: clientRegion, - } -} - -func newClientConfiguredForCrossRegionFIPSError(resource arn.Resource, clientPartitionID, clientRegion string, err error) configurationError { - return configurationError{ - message: "client configured for FIPS with cross-region enabled but is supported with cross-region resource ARN", - origErr: err, - resource: resource, - clientPartitionID: clientPartitionID, - clientRegion: clientRegion, - } -} diff --git a/service/s3/endpoint_test.go b/service/s3/endpoint_test.go index 8ff737fe2ee..dad8049119b 100644 --- a/service/s3/endpoint_test.go +++ b/service/s3/endpoint_test.go @@ -25,6 +25,106 @@ func TestEndpoint(t *testing.T) { expectedSigningRegion string expectedErr string }{ + "Outpost AccessPoint with no S3UseARNRegion flag set": { + bucket: "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + config: &aws.Config{ + Region: aws.String("us-west-2"), + }, + expectedEndpoint: "https://myaccesspoint-123456789012.op-01234567890123456.s3-outposts.us-west-2.amazonaws.com", + expectedSigningName: "s3-outposts", + expectedSigningRegion: "us-west-2", + }, + "Outpost AccessPoint Cross-Region Enabled": { + bucket: "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + config: &aws.Config{ + Region: aws.String("us-west-2"), + S3UseARNRegion: aws.Bool(true), + }, + expectedEndpoint: "https://myaccesspoint-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com", + expectedSigningName: "s3-outposts", + expectedSigningRegion: "us-east-1", + }, + "Outpost AccessPoint Cross-Region Disabled": { + bucket: "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + config: &aws.Config{ + Region: aws.String("us-west-2"), + }, + expectedErr: "client region does not match provided ARN region", + }, + "Outpost AccessPoint other partition": { + bucket: "arn:aws-cn:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + config: &aws.Config{ + Region: aws.String("us-west-2"), + S3UseARNRegion: aws.Bool(true), + }, + expectedErr: "ConfigurationError: client partition does not match provided ARN partition", + }, + "Outpost AccessPoint cn partition": { + bucket: "arn:aws-cn:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + config: &aws.Config{ + Region: aws.String("cn-north-1"), + }, + expectedEndpoint: "https://myaccesspoint-123456789012.op-01234567890123456.s3-outposts.cn-north-1.amazonaws.com.cn", + expectedSigningName: "s3-outposts", + expectedSigningRegion: "cn-north-1", + }, + "Outpost AccessPoint us-gov region": { + bucket: "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + config: &aws.Config{ + Region: aws.String("us-gov-east-1"), + S3UseARNRegion: aws.Bool(true), + }, + expectedEndpoint: "https://myaccesspoint-123456789012.op-01234567890123456.s3-outposts.us-gov-east-1.amazonaws.com", + expectedSigningName: "s3-outposts", + expectedSigningRegion: "us-gov-east-1", + }, + "Outpost AccessPoint Fips region": { + bucket: "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + config: &aws.Config{ + EndpointResolver: endpoints.AwsUsGovPartition(), + Region: aws.String("fips-us-gov-east-1"), + }, + expectedErr: "ConfigurationError: client region does not match provided ARN region", + }, + "Outpost AccessPoint Fips region in Arn": { + bucket: "arn:aws-us-gov:s3-outposts:fips-us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + config: &aws.Config{ + EndpointResolver: endpoints.AwsUsGovPartition(), + EnforceShouldRetryCheck: nil, + Region: aws.String("fips-us-gov-east-1"), + DisableSSL: nil, + HTTPClient: nil, + S3UseARNRegion: aws.Bool(true), + }, + expectedErr: "InvalidARNError: resource ARN not supported for FIPS region", + }, + "Outpost AccessPoint Fips region with valid ARN region": { + bucket: "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + config: &aws.Config{ + EndpointResolver: endpoints.AwsUsGovPartition(), + Region: aws.String("fips-us-gov-east-1"), + S3UseARNRegion: aws.Bool(true), + }, + expectedEndpoint: "https://myaccesspoint-123456789012.op-01234567890123456.s3-outposts.us-gov-east-1.amazonaws.com", + expectedSigningName: "s3-outposts", + expectedSigningRegion: "us-gov-east-1", + }, + "Outpost AccessPoint with DualStack": { + bucket: "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + config: &aws.Config{ + Region: aws.String("us-west-2"), + UseDualStack: aws.Bool(true), + }, + expectedErr: "ConfigurationError: client configured for S3 Dual-stack but is not supported with resource ARN", + }, + "Outpost AccessPoint with Accelerate": { + bucket: "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + config: &aws.Config{ + Region: aws.String("us-west-2"), + S3UseAccelerate: aws.Bool(true), + }, + expectedErr: "ConfigurationError: client configured for S3 Accelerate but is not supported with resource ARN", + }, "AccessPoint": { bucket: "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", config: &aws.Config{ @@ -284,6 +384,10 @@ func TestEndpoint(t *testing.T) { for name, c := range cases { t.Run(name, func(t *testing.T) { + if strings.EqualFold("az", name) { + fmt.Print() + } + sess := unit.Session.Copy(c.config) svc := New(sess) diff --git a/service/s3/examples_test.go b/service/s3/examples_test.go index b4a4831e4b4..ba50e449fd3 100644 --- a/service/s3/examples_test.go +++ b/service/s3/examples_test.go @@ -128,13 +128,17 @@ func ExampleS3_CopyObject_shared00() { fmt.Println(result) } -// To create a bucket +// To create a bucket in a specific region // -// The following example creates a bucket. +// The following example creates a bucket. The request specifies an AWS region where +// to create the bucket. func ExampleS3_CreateBucket_shared00() { svc := s3.New(session.New()) input := &s3.CreateBucketInput{ Bucket: aws.String("examplebucket"), + CreateBucketConfiguration: &s3.CreateBucketConfiguration{ + LocationConstraint: aws.String("eu-west-1"), + }, } result, err := svc.CreateBucket(input) @@ -159,17 +163,13 @@ func ExampleS3_CreateBucket_shared00() { fmt.Println(result) } -// To create a bucket in a specific region +// To create a bucket // -// The following example creates a bucket. The request specifies an AWS region where -// to create the bucket. +// The following example creates a bucket. func ExampleS3_CreateBucket_shared01() { svc := s3.New(session.New()) input := &s3.CreateBucketInput{ Bucket: aws.String("examplebucket"), - CreateBucketConfiguration: &s3.CreateBucketConfiguration{ - LocationConstraint: aws.String("eu-west-1"), - }, } result, err := svc.CreateBucket(input) @@ -411,14 +411,14 @@ func ExampleS3_DeleteBucketWebsite_shared00() { fmt.Println(result) } -// To delete an object +// To delete an object (from a non-versioned bucket) // -// The following example deletes an object from an S3 bucket. +// The following example deletes an object from a non-versioned bucket. func ExampleS3_DeleteObject_shared00() { svc := s3.New(session.New()) input := &s3.DeleteObjectInput{ - Bucket: aws.String("examplebucket"), - Key: aws.String("objectkey.jpg"), + Bucket: aws.String("ExampleBucket"), + Key: aws.String("HappyFace.jpg"), } result, err := svc.DeleteObject(input) @@ -439,14 +439,14 @@ func ExampleS3_DeleteObject_shared00() { fmt.Println(result) } -// To delete an object (from a non-versioned bucket) +// To delete an object // -// The following example deletes an object from a non-versioned bucket. +// The following example deletes an object from an S3 bucket. func ExampleS3_DeleteObject_shared01() { svc := s3.New(session.New()) input := &s3.DeleteObjectInput{ - Bucket: aws.String("ExampleBucket"), - Key: aws.String("HappyFace.jpg"), + Bucket: aws.String("examplebucket"), + Key: aws.String("objectkey.jpg"), } result, err := svc.DeleteObject(input) @@ -467,16 +467,16 @@ func ExampleS3_DeleteObject_shared01() { fmt.Println(result) } -// To remove tag set from an object version +// To remove tag set from an object // -// The following example removes tag set associated with the specified object version. -// The request specifies both the object key and object version. +// The following example removes tag set associated with the specified object. If the +// bucket is versioning enabled, the operation removes tag set from the latest object +// version. func ExampleS3_DeleteObjectTagging_shared00() { svc := s3.New(session.New()) input := &s3.DeleteObjectTaggingInput{ - Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), - VersionId: aws.String("ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI"), + Bucket: aws.String("examplebucket"), + Key: aws.String("HappyFace.jpg"), } result, err := svc.DeleteObjectTagging(input) @@ -497,16 +497,16 @@ func ExampleS3_DeleteObjectTagging_shared00() { fmt.Println(result) } -// To remove tag set from an object +// To remove tag set from an object version // -// The following example removes tag set associated with the specified object. If the -// bucket is versioning enabled, the operation removes tag set from the latest object -// version. +// The following example removes tag set associated with the specified object version. +// The request specifies both the object key and object version. func ExampleS3_DeleteObjectTagging_shared01() { svc := s3.New(session.New()) input := &s3.DeleteObjectTaggingInput{ - Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), + Bucket: aws.String("examplebucket"), + Key: aws.String("HappyFace.jpg"), + VersionId: aws.String("ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI"), } result, err := svc.DeleteObjectTagging(input) @@ -527,11 +527,11 @@ func ExampleS3_DeleteObjectTagging_shared01() { fmt.Println(result) } -// To delete multiple object versions from a versioned bucket +// To delete multiple objects from a versioned bucket // -// The following example deletes objects from a bucket. The request specifies object -// versions. S3 deletes specific object versions and returns the key and versions of -// deleted objects in the response. +// The following example deletes objects from a bucket. The bucket is versioned, and +// the request does not specify the object version to delete. In this case, all versions +// remain in the bucket and S3 adds a delete marker. func ExampleS3_DeleteObjects_shared00() { svc := s3.New(session.New()) input := &s3.DeleteObjectsInput{ @@ -539,12 +539,10 @@ func ExampleS3_DeleteObjects_shared00() { Delete: &s3.Delete{ Objects: []*s3.ObjectIdentifier{ { - Key: aws.String("HappyFace.jpg"), - VersionId: aws.String("2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b"), + Key: aws.String("objectkey1"), }, { - Key: aws.String("HappyFace.jpg"), - VersionId: aws.String("yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd"), + Key: aws.String("objectkey2"), }, }, Quiet: aws.Bool(false), @@ -569,11 +567,11 @@ func ExampleS3_DeleteObjects_shared00() { fmt.Println(result) } -// To delete multiple objects from a versioned bucket +// To delete multiple object versions from a versioned bucket // -// The following example deletes objects from a bucket. The bucket is versioned, and -// the request does not specify the object version to delete. In this case, all versions -// remain in the bucket and S3 adds a delete marker. +// The following example deletes objects from a bucket. The request specifies object +// versions. S3 deletes specific object versions and returns the key and versions of +// deleted objects in the response. func ExampleS3_DeleteObjects_shared01() { svc := s3.New(session.New()) input := &s3.DeleteObjectsInput{ @@ -581,10 +579,12 @@ func ExampleS3_DeleteObjects_shared01() { Delete: &s3.Delete{ Objects: []*s3.ObjectIdentifier{ { - Key: aws.String("objectkey1"), + Key: aws.String("HappyFace.jpg"), + VersionId: aws.String("2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b"), }, { - Key: aws.String("objectkey2"), + Key: aws.String("HappyFace.jpg"), + VersionId: aws.String("yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd"), }, }, Quiet: aws.Bool(false), @@ -934,16 +934,14 @@ func ExampleS3_GetBucketWebsite_shared00() { fmt.Println(result) } -// To retrieve a byte range of an object +// To retrieve an object // -// The following example retrieves an object for an S3 bucket. The request specifies -// the range header to retrieve a specific byte range. +// The following example retrieves an object for an S3 bucket. func ExampleS3_GetObject_shared00() { svc := s3.New(session.New()) input := &s3.GetObjectInput{ Bucket: aws.String("examplebucket"), - Key: aws.String("SampleFile.txt"), - Range: aws.String("bytes=0-9"), + Key: aws.String("HappyFace.jpg"), } result, err := svc.GetObject(input) @@ -966,14 +964,16 @@ func ExampleS3_GetObject_shared00() { fmt.Println(result) } -// To retrieve an object +// To retrieve a byte range of an object // -// The following example retrieves an object for an S3 bucket. +// The following example retrieves an object for an S3 bucket. The request specifies +// the range header to retrieve a specific byte range. func ExampleS3_GetObject_shared01() { svc := s3.New(session.New()) input := &s3.GetObjectInput{ Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), + Key: aws.String("SampleFile.txt"), + Range: aws.String("bytes=0-9"), } result, err := svc.GetObject(input) @@ -1026,14 +1026,16 @@ func ExampleS3_GetObjectAcl_shared00() { fmt.Println(result) } -// To retrieve tag set of an object +// To retrieve tag set of a specific object version // -// The following example retrieves tag set of an object. +// The following example retrieves tag set of an object. The request specifies object +// version. func ExampleS3_GetObjectTagging_shared00() { svc := s3.New(session.New()) input := &s3.GetObjectTaggingInput{ - Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), + Bucket: aws.String("examplebucket"), + Key: aws.String("exampleobject"), + VersionId: aws.String("ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI"), } result, err := svc.GetObjectTagging(input) @@ -1054,16 +1056,14 @@ func ExampleS3_GetObjectTagging_shared00() { fmt.Println(result) } -// To retrieve tag set of a specific object version +// To retrieve tag set of an object // -// The following example retrieves tag set of an object. The request specifies object -// version. +// The following example retrieves tag set of an object. func ExampleS3_GetObjectTagging_shared01() { svc := s3.New(session.New()) input := &s3.GetObjectTaggingInput{ - Bucket: aws.String("examplebucket"), - Key: aws.String("exampleobject"), - VersionId: aws.String("ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI"), + Bucket: aws.String("examplebucket"), + Key: aws.String("HappyFace.jpg"), } result, err := svc.GetObjectTagging(input) @@ -1804,19 +1804,17 @@ func ExampleS3_PutBucketWebsite_shared00() { fmt.Println(result) } -// To upload an object and specify server-side encryption and object tags +// To upload an object // -// The following example uploads and object. The request specifies the optional server-side -// encryption option. The request also specifies optional object tags. If the bucket -// is versioning enabled, S3 returns version ID in response. +// The following example uploads an object to a versioning-enabled bucket. The source +// file is specified using Windows file syntax. S3 returns VersionId of the newly created +// object. func ExampleS3_PutObject_shared00() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), - Bucket: aws.String("examplebucket"), - Key: aws.String("exampleobject"), - ServerSideEncryption: aws.String("AES256"), - Tagging: aws.String("key1=value1&key2=value2"), + Body: aws.ReadSeekCloser(strings.NewReader("HappyFace.jpg")), + Bucket: aws.String("examplebucket"), + Key: aws.String("HappyFace.jpg"), } result, err := svc.PutObject(input) @@ -1837,16 +1835,20 @@ func ExampleS3_PutObject_shared00() { fmt.Println(result) } -// To create an object. +// To upload object and specify user-defined metadata // -// The following example creates an object. If the bucket is versioning enabled, S3 -// returns version ID in response. +// The following example creates an object. The request also specifies optional metadata. +// If the bucket is versioning enabled, S3 returns version ID in response. func ExampleS3_PutObject_shared01() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), Bucket: aws.String("examplebucket"), - Key: aws.String("objectkey"), + Key: aws.String("exampleobject"), + Metadata: map[string]*string{ + "metadata1": aws.String("value1"), + "metadata2": aws.String("value2"), + }, } result, err := svc.PutObject(input) @@ -1867,17 +1869,19 @@ func ExampleS3_PutObject_shared01() { fmt.Println(result) } -// To upload an object and specify optional tags +// To upload an object and specify server-side encryption and object tags // -// The following example uploads an object. The request specifies optional object tags. -// The bucket is versioned, therefore S3 returns version ID of the newly created object. +// The following example uploads and object. The request specifies the optional server-side +// encryption option. The request also specifies optional object tags. If the bucket +// is versioning enabled, S3 returns version ID in response. func ExampleS3_PutObject_shared02() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("c:\\HappyFace.jpg")), - Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), - Tagging: aws.String("key1=value1&key2=value2"), + Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), + Bucket: aws.String("examplebucket"), + Key: aws.String("exampleobject"), + ServerSideEncryption: aws.String("AES256"), + Tagging: aws.String("key1=value1&key2=value2"), } result, err := svc.PutObject(input) @@ -1898,18 +1902,17 @@ func ExampleS3_PutObject_shared02() { fmt.Println(result) } -// To upload an object (specify optional headers) +// To upload an object and specify optional tags // -// The following example uploads an object. The request specifies optional request headers -// to directs S3 to use specific storage class and use server-side encryption. +// The following example uploads an object. The request specifies optional object tags. +// The bucket is versioned, therefore S3 returns version ID of the newly created object. func ExampleS3_PutObject_shared03() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("HappyFace.jpg")), - Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), - ServerSideEncryption: aws.String("AES256"), - StorageClass: aws.String("STANDARD_IA"), + Body: aws.ReadSeekCloser(strings.NewReader("c:\\HappyFace.jpg")), + Bucket: aws.String("examplebucket"), + Key: aws.String("HappyFace.jpg"), + Tagging: aws.String("key1=value1&key2=value2"), } result, err := svc.PutObject(input) @@ -1930,20 +1933,18 @@ func ExampleS3_PutObject_shared03() { fmt.Println(result) } -// To upload object and specify user-defined metadata +// To upload an object (specify optional headers) // -// The following example creates an object. The request also specifies optional metadata. -// If the bucket is versioning enabled, S3 returns version ID in response. +// The following example uploads an object. The request specifies optional request headers +// to directs S3 to use specific storage class and use server-side encryption. func ExampleS3_PutObject_shared04() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), - Bucket: aws.String("examplebucket"), - Key: aws.String("exampleobject"), - Metadata: map[string]*string{ - "metadata1": aws.String("value1"), - "metadata2": aws.String("value2"), - }, + Body: aws.ReadSeekCloser(strings.NewReader("HappyFace.jpg")), + Bucket: aws.String("examplebucket"), + Key: aws.String("HappyFace.jpg"), + ServerSideEncryption: aws.String("AES256"), + StorageClass: aws.String("STANDARD_IA"), } result, err := svc.PutObject(input) @@ -1996,17 +1997,16 @@ func ExampleS3_PutObject_shared05() { fmt.Println(result) } -// To upload an object +// To create an object. // -// The following example uploads an object to a versioning-enabled bucket. The source -// file is specified using Windows file syntax. S3 returns VersionId of the newly created -// object. +// The following example creates an object. If the bucket is versioning enabled, S3 +// returns version ID in response. func ExampleS3_PutObject_shared06() { svc := s3.New(session.New()) input := &s3.PutObjectInput{ - Body: aws.ReadSeekCloser(strings.NewReader("HappyFace.jpg")), + Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), Bucket: aws.String("examplebucket"), - Key: aws.String("HappyFace.jpg"), + Key: aws.String("objectkey"), } result, err := svc.PutObject(input) diff --git a/service/s3/s3manager/upload_input.go b/service/s3/s3manager/upload_input.go index 5aebddf9142..34dec7fff2d 100644 --- a/service/s3/s3manager/upload_input.go +++ b/service/s3/s3manager/upload_input.go @@ -21,7 +21,7 @@ type UploadInput struct { // The readable body payload to send to S3. Body io.Reader - // Bucket name to which the PUT operation was initiated. + // The bucket name to which the PUT operation was initiated. // // When using this API with an access point, you must direct requests to the // access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. @@ -30,6 +30,14 @@ type UploadInput struct { // about access point ARNs, see Using Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html) // in the Amazon Simple Storage Service Developer Guide. // + // When using this API with Amazon S3 on Outposts, you must direct requests + // to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form + // AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When + // using this operation using S3 on Outposts through the AWS SDKs, you provide + // the Outposts bucket ARN in place of the bucket name. For more information + // about S3 on Outposts ARNs, see Using S3 on Outposts (https://docs.aws.amazon.com/) + // in the Amazon Simple Storage Service Developer Guide. + // // Bucket is a required field Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"` diff --git a/service/s3control/api.go b/service/s3control/api.go index 6ad326a3b4a..57133f0734d 100644 --- a/service/s3control/api.go +++ b/service/s3control/api.go @@ -9,6 +9,8 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awsutil" "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/internal/s3shared/arn" + "github.com/aws/aws-sdk-go/private/checksum" "github.com/aws/aws-sdk-go/private/protocol" "github.com/aws/aws-sdk-go/private/protocol/restxml" ) @@ -52,7 +54,9 @@ func (c *S3Control) CreateAccessPointRequest(input *CreateAccessPointInput) (req output = &CreateAccessPointOutput{} req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return @@ -60,7 +64,41 @@ func (c *S3Control) CreateAccessPointRequest(input *CreateAccessPointInput) (req // CreateAccessPoint API operation for AWS S3 Control. // -// Creates an access point and associates it with the specified bucket. +// Creates an access point and associates it with the specified bucket. For +// more information, see Managing Data Access with Amazon S3 Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points.html) +// in the Amazon Simple Storage Service Developer Guide. +// +// Using this action with Amazon S3 on Outposts +// +// This action: +// +// * Requires a virtual private cloud (VPC) configuration as S3 on Outposts +// only supports VPC style access points. +// +// * Does not support ACL on S3 on Outposts buckets. +// +// * Does not support Public Access on S3 on Outposts buckets. +// +// * Does not support object lock for S3 on Outposts buckets. +// +// For more information, see Using Amazon S3 on Outposts (AmazonS3/latest/dev/S3onOutposts.html) +// in the Amazon Simple Storage Service Developer Guide . +// +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of outpost-id to be passed with the request and an S3 on Outposts +// endpoint hostname prefix instead of s3-control. For an example of the request +// syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname +// prefix and the outpost-id derived using the access point ARN, see the Example +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_CreateAccessPoint.html#API_control_CreateAccessPoint_Examples) +// section below. +// +// The following actions are related to CreateAccessPoint: +// +// * GetAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html) +// +// * DeleteAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_DeleteAccessPoint.html) +// +// * ListAccessPoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_ListAccessPoints.html) // // 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 @@ -90,6 +128,132 @@ func (c *S3Control) CreateAccessPointWithContext(ctx aws.Context, input *CreateA return out, req.Send() } +const opCreateBucket = "CreateBucket" + +// CreateBucketRequest generates a "aws/request.Request" representing the +// client's request for the CreateBucket operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See CreateBucket for more information on using the CreateBucket +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the CreateBucketRequest method. +// req, resp := client.CreateBucketRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateBucket +func (c *S3Control) CreateBucketRequest(input *CreateBucketInput) (req *request.Request, output *CreateBucketOutput) { + op := &request.Operation{ + Name: opCreateBucket, + HTTPMethod: "PUT", + HTTPPath: "/v20180820/bucket/{name}", + } + + if input == nil { + input = &CreateBucketInput{} + } + + output = &CreateBucketOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) + return +} + +// CreateBucket API operation for AWS S3 Control. +// +// +// This API operation creates an Amazon S3 on Outposts bucket. To create an +// S3 bucket, see Create Bucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html) +// in the Amazon Simple Storage Service API. +// +// Creates a new Outposts bucket. By creating the bucket, you become the bucket +// owner. To create an Outposts bucket, you must have S3 on Outposts. For more +// information, see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) +// in Amazon Simple Storage Service Developer Guide. +// +// Not every string is an acceptable bucket name. For information on bucket +// naming restrictions, see Working with Amazon S3 Buckets (https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html#bucketnamingrules). +// +// S3 on Outposts buckets do not support +// +// * ACLs. Instead, configure access point policies to manage access to buckets. +// +// * Public access. +// +// * Object Lock +// +// * Bucket Location constraint +// +// For an example of the request syntax for Amazon S3 on Outposts that uses +// the S3 on Outposts endpoint hostname prefix and outpost-id in your API request, +// see the Example (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_CreateBucket.html#API_control_CreateBucket_Examples) +// section below. +// +// The following actions are related to CreateBucket for Amazon S3 on Outposts: +// +// * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) +// +// * GetBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_GetBucket.html) +// +// * DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_DeleteBucket.html) +// +// * CreateAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_CreateAccessPoint.html) +// +// * PutAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_PutAccessPointPolicy.html) +// +// 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 +// the error. +// +// See the AWS API reference guide for AWS S3 Control's +// API operation CreateBucket for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBucketAlreadyExists "BucketAlreadyExists" +// The requested Outposts bucket name is not available. The bucket namespace +// is shared by all users of the AWS Outposts in this Region. Select a different +// name and try again. +// +// * ErrCodeBucketAlreadyOwnedByYou "BucketAlreadyOwnedByYou" +// The Outposts bucket you tried to create already exists, and you own it. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateBucket +func (c *S3Control) CreateBucket(input *CreateBucketInput) (*CreateBucketOutput, error) { + req, out := c.CreateBucketRequest(input) + return out, req.Send() +} + +// CreateBucketWithContext is the same as CreateBucket with the addition of +// the ability to pass a context and additional request options. +// +// See CreateBucket for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) CreateBucketWithContext(ctx aws.Context, input *CreateBucketInput, opts ...request.Option) (*CreateBucketOutput, error) { + req, out := c.CreateBucketRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCreateJob = "CreateJob" // CreateJobRequest generates a "aws/request.Request" representing the @@ -136,21 +300,23 @@ func (c *S3Control) CreateJobRequest(input *CreateJobInput) (req *request.Reques // CreateJob API operation for AWS S3 Control. // -// You can use Amazon S3 Batch Operations to perform large-scale Batch Operations -// on Amazon S3 objects. Amazon S3 Batch Operations can execute a single operation -// or action on lists of Amazon S3 objects that you specify. For more information, -// see Amazon S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html) -// in the Amazon Simple Storage Service Developer Guide. +// S3 Batch Operations performs large-scale Batch Operations on Amazon S3 objects. +// Batch Operations can run a single operation or action on lists of Amazon +// S3 objects that you specify. For more information, see S3 Batch Operations +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html) in +// the Amazon Simple Storage Service Developer Guide. +// +// This operation creates a S3 Batch Operations job. // // Related actions include: // -// * DescribeJob +// * DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html) // -// * ListJobs +// * ListJobs (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html) // -// * UpdateJobPriority +// * UpdateJobPriority (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobPriority.html) // -// * UpdateJobStatus +// * UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html) // // 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 @@ -229,6 +395,9 @@ func (c *S3Control) DeleteAccessPointRequest(input *DeleteAccessPointInput) (req output = &DeleteAccessPointOutput{} req = c.newRequest(op, input, output) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) @@ -239,6 +408,22 @@ func (c *S3Control) DeleteAccessPointRequest(input *DeleteAccessPointInput) (req // // Deletes the specified access point. // +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of outpost-id to be passed with the request and an S3 on Outposts +// endpoint hostname prefix instead of s3-control. For an example of the request +// syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname +// prefix and the outpost-id derived using the access point ARN, see the ARN, +// see the Example (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_DeleteAccessPoint.html#API_control_DeleteAccessPoint_Examples) +// section below. +// +// The following actions are related to DeleteAccessPoint: +// +// * CreateAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html) +// +// * GetAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html) +// +// * ListAccessPoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.html) +// // 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 // the error. @@ -316,6 +501,20 @@ func (c *S3Control) DeleteAccessPointPolicyRequest(input *DeleteAccessPointPolic // // Deletes the access point policy for the specified access point. // +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of outpost-id to be passed with the request and an S3 on Outposts +// endpoint hostname prefix instead of s3-control. For an example of the request +// syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname +// prefix and the outpost-id derived using the access point ARN, see the Example +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_DeleteAccessPointPolicy.html#API_control_DeleteAccessPointPolicy_Examples) +// section below. +// +// The following actions are related to DeleteAccessPointPolicy: +// +// * PutAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html) +// +// * GetAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html) +// // 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 // the error. @@ -344,1588 +543,4779 @@ func (c *S3Control) DeleteAccessPointPolicyWithContext(ctx aws.Context, input *D return out, req.Send() } -const opDeleteJobTagging = "DeleteJobTagging" +const opDeleteBucket = "DeleteBucket" -// DeleteJobTaggingRequest generates a "aws/request.Request" representing the -// client's request for the DeleteJobTagging operation. The "output" return +// DeleteBucketRequest generates a "aws/request.Request" representing the +// client's request for the DeleteBucket operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // -// See DeleteJobTagging for more information on using the DeleteJobTagging +// See DeleteBucket for more information on using the DeleteBucket // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // -// // Example sending a request using the DeleteJobTaggingRequest method. -// req, resp := client.DeleteJobTaggingRequest(params) +// // Example sending a request using the DeleteBucketRequest method. +// req, resp := client.DeleteBucketRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteJobTagging -func (c *S3Control) DeleteJobTaggingRequest(input *DeleteJobTaggingInput) (req *request.Request, output *DeleteJobTaggingOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucket +func (c *S3Control) DeleteBucketRequest(input *DeleteBucketInput) (req *request.Request, output *DeleteBucketOutput) { op := &request.Operation{ - Name: opDeleteJobTagging, + Name: opDeleteBucket, HTTPMethod: "DELETE", - HTTPPath: "/v20180820/jobs/{id}/tagging", + HTTPPath: "/v20180820/bucket/{name}", } if input == nil { - input = &DeleteJobTaggingInput{} + input = &DeleteBucketInput{} } - output = &DeleteJobTaggingOutput{} + output = &DeleteBucketOutput{} req = c.newRequest(op, input, output) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// DeleteJobTagging API operation for AWS S3 Control. +// DeleteBucket API operation for AWS S3 Control. // -// Removes the entire tag set from the specified Amazon S3 Batch Operations -// job. To use this operation, you must have permission to perform the s3:DeleteJobTagging -// action. For more information, see Using Job Tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags) -// in the Amazon Simple Storage Service Developer Guide. // -// Related actions include: +// This API operation deletes an Amazon S3 on Outposts bucket. To delete an +// S3 bucket, see DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html) +// in the Amazon Simple Storage Service API. +// +// Deletes the Amazon S3 on Outposts bucket. All objects (including all object +// versions and delete markers) in the bucket must be deleted before the bucket +// itself can be deleted. For more information, see Using Amazon S3 on Outposts +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) in Amazon +// Simple Storage Service Developer Guide. // -// * CreateJob +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of outpost-id to be passed with the request and an S3 on Outposts +// endpoint hostname prefix instead of s3-control. For an example of the request +// syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname +// prefix and the outpost-id derived using the access point ARN, see the Example +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_DeleteBucket.html#API_control_DeleteBucket_Examples) +// section below. // -// * GetJobTagging +// Related Resources // -// * PutJobTagging +// * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html) +// +// * GetBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_GetBucket.html) +// +// * DeleteObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html) // // 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 // the error. // // See the AWS API reference guide for AWS S3 Control's -// API operation DeleteJobTagging for usage and error information. -// -// Returned Error Codes: -// * ErrCodeInternalServiceException "InternalServiceException" -// -// * ErrCodeTooManyRequestsException "TooManyRequestsException" -// -// * ErrCodeNotFoundException "NotFoundException" -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteJobTagging -func (c *S3Control) DeleteJobTagging(input *DeleteJobTaggingInput) (*DeleteJobTaggingOutput, error) { - req, out := c.DeleteJobTaggingRequest(input) +// API operation DeleteBucket for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucket +func (c *S3Control) DeleteBucket(input *DeleteBucketInput) (*DeleteBucketOutput, error) { + req, out := c.DeleteBucketRequest(input) return out, req.Send() } -// DeleteJobTaggingWithContext is the same as DeleteJobTagging with the addition of +// DeleteBucketWithContext is the same as DeleteBucket with the addition of // the ability to pass a context and additional request options. // -// See DeleteJobTagging for details on how to use this API operation. +// See DeleteBucket for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) DeleteJobTaggingWithContext(ctx aws.Context, input *DeleteJobTaggingInput, opts ...request.Option) (*DeleteJobTaggingOutput, error) { - req, out := c.DeleteJobTaggingRequest(input) +func (c *S3Control) DeleteBucketWithContext(ctx aws.Context, input *DeleteBucketInput, opts ...request.Option) (*DeleteBucketOutput, error) { + req, out := c.DeleteBucketRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opDeletePublicAccessBlock = "DeletePublicAccessBlock" +const opDeleteBucketLifecycleConfiguration = "DeleteBucketLifecycleConfiguration" -// DeletePublicAccessBlockRequest generates a "aws/request.Request" representing the -// client's request for the DeletePublicAccessBlock operation. The "output" return +// DeleteBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the DeleteBucketLifecycleConfiguration operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // -// See DeletePublicAccessBlock for more information on using the DeletePublicAccessBlock +// See DeleteBucketLifecycleConfiguration for more information on using the DeleteBucketLifecycleConfiguration // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // -// // Example sending a request using the DeletePublicAccessBlockRequest method. -// req, resp := client.DeletePublicAccessBlockRequest(params) +// // Example sending a request using the DeleteBucketLifecycleConfigurationRequest method. +// req, resp := client.DeleteBucketLifecycleConfigurationRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeletePublicAccessBlock -func (c *S3Control) DeletePublicAccessBlockRequest(input *DeletePublicAccessBlockInput) (req *request.Request, output *DeletePublicAccessBlockOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketLifecycleConfiguration +func (c *S3Control) DeleteBucketLifecycleConfigurationRequest(input *DeleteBucketLifecycleConfigurationInput) (req *request.Request, output *DeleteBucketLifecycleConfigurationOutput) { op := &request.Operation{ - Name: opDeletePublicAccessBlock, + Name: opDeleteBucketLifecycleConfiguration, HTTPMethod: "DELETE", - HTTPPath: "/v20180820/configuration/publicAccessBlock", + HTTPPath: "/v20180820/bucket/{name}/lifecycleconfiguration", } if input == nil { - input = &DeletePublicAccessBlockInput{} + input = &DeleteBucketLifecycleConfigurationInput{} } - output = &DeletePublicAccessBlockOutput{} + output = &DeleteBucketLifecycleConfigurationOutput{} req = c.newRequest(op, input, output) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// DeletePublicAccessBlock API operation for AWS S3 Control. +// DeleteBucketLifecycleConfiguration API operation for AWS S3 Control. +// // -// Removes the PublicAccessBlock configuration for an Amazon Web Services account. +// This API action deletes an Amazon S3 on Outposts bucket's lifecycle configuration. +// To delete an S3 bucket's lifecycle configuration, see DeleteBucketLifecycle +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html) +// in the Amazon Simple Storage Service API. +// +// Deletes the lifecycle configuration from the specified Outposts bucket. Amazon +// S3 on Outposts removes all the lifecycle configuration rules in the lifecycle +// subresource associated with the bucket. Your objects never expire, and Amazon +// S3 on Outposts no longer automatically deletes any objects on the basis of +// rules contained in the deleted lifecycle configuration. For more information, +// see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) +// in Amazon Simple Storage Service Developer Guide. +// +// To use this operation, you must have permission to perform the s3outposts:DeleteLifecycleConfiguration +// action. By default, the bucket owner has this permission and the Outposts +// bucket owner can grant this permission to others. +// +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of outpost-id to be passed with the request and an S3 on Outposts +// endpoint hostname prefix instead of s3-control. For an example of the request +// syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname +// prefix and the outpost-id derived using the access point ARN, see the Example +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_DeleteBucketLifecycleConfiguration.html#API_control_DeleteBucketLifecycleConfiguration_Examples) +// section below. +// +// For more information about object expiration, see Elements to Describe Lifecycle +// Actions (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions). +// +// Related actions include: +// +// * PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html) +// +// * GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html) // // 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 // the error. // // See the AWS API reference guide for AWS S3 Control's -// API operation DeletePublicAccessBlock for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeletePublicAccessBlock -func (c *S3Control) DeletePublicAccessBlock(input *DeletePublicAccessBlockInput) (*DeletePublicAccessBlockOutput, error) { - req, out := c.DeletePublicAccessBlockRequest(input) +// API operation DeleteBucketLifecycleConfiguration for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketLifecycleConfiguration +func (c *S3Control) DeleteBucketLifecycleConfiguration(input *DeleteBucketLifecycleConfigurationInput) (*DeleteBucketLifecycleConfigurationOutput, error) { + req, out := c.DeleteBucketLifecycleConfigurationRequest(input) return out, req.Send() } -// DeletePublicAccessBlockWithContext is the same as DeletePublicAccessBlock with the addition of +// DeleteBucketLifecycleConfigurationWithContext is the same as DeleteBucketLifecycleConfiguration with the addition of // the ability to pass a context and additional request options. // -// See DeletePublicAccessBlock for details on how to use this API operation. +// See DeleteBucketLifecycleConfiguration for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) DeletePublicAccessBlockWithContext(ctx aws.Context, input *DeletePublicAccessBlockInput, opts ...request.Option) (*DeletePublicAccessBlockOutput, error) { - req, out := c.DeletePublicAccessBlockRequest(input) +func (c *S3Control) DeleteBucketLifecycleConfigurationWithContext(ctx aws.Context, input *DeleteBucketLifecycleConfigurationInput, opts ...request.Option) (*DeleteBucketLifecycleConfigurationOutput, error) { + req, out := c.DeleteBucketLifecycleConfigurationRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opDescribeJob = "DescribeJob" +const opDeleteBucketPolicy = "DeleteBucketPolicy" -// DescribeJobRequest generates a "aws/request.Request" representing the -// client's request for the DescribeJob operation. The "output" return +// DeleteBucketPolicyRequest generates a "aws/request.Request" representing the +// client's request for the DeleteBucketPolicy operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // -// See DescribeJob for more information on using the DescribeJob +// See DeleteBucketPolicy for more information on using the DeleteBucketPolicy // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // -// // Example sending a request using the DescribeJobRequest method. -// req, resp := client.DescribeJobRequest(params) +// // Example sending a request using the DeleteBucketPolicyRequest method. +// req, resp := client.DeleteBucketPolicyRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DescribeJob -func (c *S3Control) DescribeJobRequest(input *DescribeJobInput) (req *request.Request, output *DescribeJobOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketPolicy +func (c *S3Control) DeleteBucketPolicyRequest(input *DeleteBucketPolicyInput) (req *request.Request, output *DeleteBucketPolicyOutput) { op := &request.Operation{ - Name: opDescribeJob, - HTTPMethod: "GET", - HTTPPath: "/v20180820/jobs/{id}", + Name: opDeleteBucketPolicy, + HTTPMethod: "DELETE", + HTTPPath: "/v20180820/bucket/{name}/policy", } if input == nil { - input = &DescribeJobInput{} + input = &DeleteBucketPolicyInput{} } - output = &DescribeJobOutput{} + output = &DeleteBucketPolicyOutput{} req = c.newRequest(op, input, output) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// DescribeJob API operation for AWS S3 Control. +// DeleteBucketPolicy API operation for AWS S3 Control. // -// Retrieves the configuration parameters and status for a Batch Operations -// job. For more information, see Amazon S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html) -// in the Amazon Simple Storage Service Developer Guide. -// -// Related actions include: // -// * CreateJob +// This API operation deletes an Amazon S3 on Outposts bucket policy. To delete +// an S3 bucket policy, see DeleteBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketPolicy.html) +// in the Amazon Simple Storage Service API. // -// * ListJobs +// This implementation of the DELETE operation uses the policy subresource to +// delete the policy of a specified Amazon S3 on Outposts bucket. If you are +// using an identity other than the root user of the AWS account that owns the +// bucket, the calling identity must have the s3outposts:DeleteBucketPolicy +// permissions on the specified Outposts bucket and belong to the bucket owner's +// account to use this operation. For more information, see Using Amazon S3 +// on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) +// in Amazon Simple Storage Service Developer Guide. // -// * UpdateJobPriority +// If you don't have DeleteBucketPolicy permissions, Amazon S3 returns a 403 +// Access Denied error. If you have the correct permissions, but you're not +// using an identity that belongs to the bucket owner's account, Amazon S3 returns +// a 405 Method Not Allowed error. // -// * UpdateJobStatus +// As a security precaution, the root user of the AWS account that owns a bucket +// can always use this operation, even if the policy explicitly denies the root +// user the ability to perform this action. // -// 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 -// the error. +// For more information about bucket policies, see Using Bucket Policies and +// User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). // -// See the AWS API reference guide for AWS S3 Control's -// API operation DescribeJob for usage and error information. +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of outpost-id to be passed with the request and an S3 on Outposts +// endpoint hostname prefix instead of s3-control. For an example of the request +// syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname +// prefix and the outpost-id derived using the access point ARN, see the Example +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_DeleteBucketPolicy.html#API_control_DeleteBucketPolicy_Examples) +// section below. // -// Returned Error Codes: -// * ErrCodeBadRequestException "BadRequestException" +// The following actions are related to DeleteBucketPolicy: // -// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// * GetBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketPolicy.html) // -// * ErrCodeNotFoundException "NotFoundException" +// * PutBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_PutBucketPolicy.html) // -// * ErrCodeInternalServiceException "InternalServiceException" +// 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 +// the error. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DescribeJob -func (c *S3Control) DescribeJob(input *DescribeJobInput) (*DescribeJobOutput, error) { - req, out := c.DescribeJobRequest(input) +// See the AWS API reference guide for AWS S3 Control's +// API operation DeleteBucketPolicy for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketPolicy +func (c *S3Control) DeleteBucketPolicy(input *DeleteBucketPolicyInput) (*DeleteBucketPolicyOutput, error) { + req, out := c.DeleteBucketPolicyRequest(input) return out, req.Send() } -// DescribeJobWithContext is the same as DescribeJob with the addition of +// DeleteBucketPolicyWithContext is the same as DeleteBucketPolicy with the addition of // the ability to pass a context and additional request options. // -// See DescribeJob for details on how to use this API operation. +// See DeleteBucketPolicy for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) DescribeJobWithContext(ctx aws.Context, input *DescribeJobInput, opts ...request.Option) (*DescribeJobOutput, error) { - req, out := c.DescribeJobRequest(input) +func (c *S3Control) DeleteBucketPolicyWithContext(ctx aws.Context, input *DeleteBucketPolicyInput, opts ...request.Option) (*DeleteBucketPolicyOutput, error) { + req, out := c.DeleteBucketPolicyRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetAccessPoint = "GetAccessPoint" +const opDeleteBucketTagging = "DeleteBucketTagging" -// GetAccessPointRequest generates a "aws/request.Request" representing the -// client's request for the GetAccessPoint operation. The "output" return +// DeleteBucketTaggingRequest generates a "aws/request.Request" representing the +// client's request for the DeleteBucketTagging operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // -// See GetAccessPoint for more information on using the GetAccessPoint +// See DeleteBucketTagging for more information on using the DeleteBucketTagging // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // -// // Example sending a request using the GetAccessPointRequest method. -// req, resp := client.GetAccessPointRequest(params) +// // Example sending a request using the DeleteBucketTaggingRequest method. +// req, resp := client.DeleteBucketTaggingRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPoint -func (c *S3Control) GetAccessPointRequest(input *GetAccessPointInput) (req *request.Request, output *GetAccessPointOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketTagging +func (c *S3Control) DeleteBucketTaggingRequest(input *DeleteBucketTaggingInput) (req *request.Request, output *DeleteBucketTaggingOutput) { op := &request.Operation{ - Name: opGetAccessPoint, - HTTPMethod: "GET", - HTTPPath: "/v20180820/accesspoint/{name}", + Name: opDeleteBucketTagging, + HTTPMethod: "DELETE", + HTTPPath: "/v20180820/bucket/{name}/tagging", } if input == nil { - input = &GetAccessPointInput{} + input = &DeleteBucketTaggingInput{} } - output = &GetAccessPointOutput{} + output = &DeleteBucketTaggingOutput{} req = c.newRequest(op, input, output) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// GetAccessPoint API operation for AWS S3 Control. +// DeleteBucketTagging API operation for AWS S3 Control. // -// Returns configuration information about the specified access point. +// +// This API operation deletes an Amazon S3 on Outposts bucket's tags. To delete +// an S3 bucket tags, see DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html) +// in the Amazon Simple Storage Service API. +// +// Deletes the tags from the Outposts bucket. For more information, see Using +// Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) +// in Amazon Simple Storage Service Developer Guide. +// +// To use this operation, you must have permission to perform the PutBucketTagging +// action. By default, the bucket owner has this permission and can grant this +// permission to others. +// +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of outpost-id to be passed with the request and an S3 on Outposts +// endpoint hostname prefix instead of s3-control. For an example of the request +// syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname +// prefix and the outpost-id derived using the access point ARN, see the Example +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_DeleteBucketTagging.html#API_control_DeleteBucketTagging_Examples) +// section below. +// +// The following actions are related to DeleteBucketTagging: +// +// * GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html) +// +// * PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html) // // 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 // the error. // // See the AWS API reference guide for AWS S3 Control's -// API operation GetAccessPoint for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPoint -func (c *S3Control) GetAccessPoint(input *GetAccessPointInput) (*GetAccessPointOutput, error) { - req, out := c.GetAccessPointRequest(input) +// API operation DeleteBucketTagging for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteBucketTagging +func (c *S3Control) DeleteBucketTagging(input *DeleteBucketTaggingInput) (*DeleteBucketTaggingOutput, error) { + req, out := c.DeleteBucketTaggingRequest(input) return out, req.Send() } -// GetAccessPointWithContext is the same as GetAccessPoint with the addition of +// DeleteBucketTaggingWithContext is the same as DeleteBucketTagging with the addition of // the ability to pass a context and additional request options. // -// See GetAccessPoint for details on how to use this API operation. +// See DeleteBucketTagging for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetAccessPointWithContext(ctx aws.Context, input *GetAccessPointInput, opts ...request.Option) (*GetAccessPointOutput, error) { - req, out := c.GetAccessPointRequest(input) +func (c *S3Control) DeleteBucketTaggingWithContext(ctx aws.Context, input *DeleteBucketTaggingInput, opts ...request.Option) (*DeleteBucketTaggingOutput, error) { + req, out := c.DeleteBucketTaggingRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetAccessPointPolicy = "GetAccessPointPolicy" +const opDeleteJobTagging = "DeleteJobTagging" -// GetAccessPointPolicyRequest generates a "aws/request.Request" representing the -// client's request for the GetAccessPointPolicy operation. The "output" return +// DeleteJobTaggingRequest generates a "aws/request.Request" representing the +// client's request for the DeleteJobTagging operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // -// See GetAccessPointPolicy for more information on using the GetAccessPointPolicy +// See DeleteJobTagging for more information on using the DeleteJobTagging // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // -// // Example sending a request using the GetAccessPointPolicyRequest method. -// req, resp := client.GetAccessPointPolicyRequest(params) +// // Example sending a request using the DeleteJobTaggingRequest method. +// req, resp := client.DeleteJobTaggingRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicy -func (c *S3Control) GetAccessPointPolicyRequest(input *GetAccessPointPolicyInput) (req *request.Request, output *GetAccessPointPolicyOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteJobTagging +func (c *S3Control) DeleteJobTaggingRequest(input *DeleteJobTaggingInput) (req *request.Request, output *DeleteJobTaggingOutput) { op := &request.Operation{ - Name: opGetAccessPointPolicy, - HTTPMethod: "GET", - HTTPPath: "/v20180820/accesspoint/{name}/policy", + Name: opDeleteJobTagging, + HTTPMethod: "DELETE", + HTTPPath: "/v20180820/jobs/{id}/tagging", } if input == nil { - input = &GetAccessPointPolicyInput{} + input = &DeleteJobTaggingInput{} } - output = &GetAccessPointPolicyOutput{} + output = &DeleteJobTaggingOutput{} req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// GetAccessPointPolicy API operation for AWS S3 Control. +// DeleteJobTagging API operation for AWS S3 Control. // -// Returns the access point policy associated with the specified access point. +// Removes the entire tag set from the specified S3 Batch Operations job. To +// use this operation, you must have permission to perform the s3:DeleteJobTagging +// action. For more information, see Controlling access and labeling jobs using +// tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags) +// in the Amazon Simple Storage Service Developer Guide. +// +// Related actions include: +// +// * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html) +// +// * GetJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html) +// +// * PutJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutJobTagging.html) // // 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 // the error. // // See the AWS API reference guide for AWS S3 Control's -// API operation GetAccessPointPolicy for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicy -func (c *S3Control) GetAccessPointPolicy(input *GetAccessPointPolicyInput) (*GetAccessPointPolicyOutput, error) { - req, out := c.GetAccessPointPolicyRequest(input) +// API operation DeleteJobTagging for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalServiceException "InternalServiceException" +// +// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// +// * ErrCodeNotFoundException "NotFoundException" +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteJobTagging +func (c *S3Control) DeleteJobTagging(input *DeleteJobTaggingInput) (*DeleteJobTaggingOutput, error) { + req, out := c.DeleteJobTaggingRequest(input) return out, req.Send() } -// GetAccessPointPolicyWithContext is the same as GetAccessPointPolicy with the addition of +// DeleteJobTaggingWithContext is the same as DeleteJobTagging with the addition of // the ability to pass a context and additional request options. // -// See GetAccessPointPolicy for details on how to use this API operation. +// See DeleteJobTagging for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetAccessPointPolicyWithContext(ctx aws.Context, input *GetAccessPointPolicyInput, opts ...request.Option) (*GetAccessPointPolicyOutput, error) { - req, out := c.GetAccessPointPolicyRequest(input) +func (c *S3Control) DeleteJobTaggingWithContext(ctx aws.Context, input *DeleteJobTaggingInput, opts ...request.Option) (*DeleteJobTaggingOutput, error) { + req, out := c.DeleteJobTaggingRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetAccessPointPolicyStatus = "GetAccessPointPolicyStatus" +const opDeletePublicAccessBlock = "DeletePublicAccessBlock" -// GetAccessPointPolicyStatusRequest generates a "aws/request.Request" representing the -// client's request for the GetAccessPointPolicyStatus operation. The "output" return +// DeletePublicAccessBlockRequest generates a "aws/request.Request" representing the +// client's request for the DeletePublicAccessBlock operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // -// See GetAccessPointPolicyStatus for more information on using the GetAccessPointPolicyStatus +// See DeletePublicAccessBlock for more information on using the DeletePublicAccessBlock // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // -// // Example sending a request using the GetAccessPointPolicyStatusRequest method. -// req, resp := client.GetAccessPointPolicyStatusRequest(params) +// // Example sending a request using the DeletePublicAccessBlockRequest method. +// req, resp := client.DeletePublicAccessBlockRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatus -func (c *S3Control) GetAccessPointPolicyStatusRequest(input *GetAccessPointPolicyStatusInput) (req *request.Request, output *GetAccessPointPolicyStatusOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeletePublicAccessBlock +func (c *S3Control) DeletePublicAccessBlockRequest(input *DeletePublicAccessBlockInput) (req *request.Request, output *DeletePublicAccessBlockOutput) { op := &request.Operation{ - Name: opGetAccessPointPolicyStatus, - HTTPMethod: "GET", - HTTPPath: "/v20180820/accesspoint/{name}/policyStatus", + Name: opDeletePublicAccessBlock, + HTTPMethod: "DELETE", + HTTPPath: "/v20180820/configuration/publicAccessBlock", } if input == nil { - input = &GetAccessPointPolicyStatusInput{} + input = &DeletePublicAccessBlockInput{} } - output = &GetAccessPointPolicyStatusOutput{} + output = &DeletePublicAccessBlockOutput{} req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// GetAccessPointPolicyStatus API operation for AWS S3 Control. +// DeletePublicAccessBlock API operation for AWS S3 Control. // -// Indicates whether the specified access point currently has a policy that -// allows public access. For more information about public access through access -// points, see Managing Data Access with Amazon S3 Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points.html) -// in the Amazon Simple Storage Service Developer Guide. +// Removes the PublicAccessBlock configuration for an AWS account. For more +// information, see Using Amazon S3 block public access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html). +// +// Related actions include: +// +// * GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetPublicAccessBlock.html) +// +// * PutPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutPublicAccessBlock.html) // // 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 // the error. // // See the AWS API reference guide for AWS S3 Control's -// API operation GetAccessPointPolicyStatus for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatus -func (c *S3Control) GetAccessPointPolicyStatus(input *GetAccessPointPolicyStatusInput) (*GetAccessPointPolicyStatusOutput, error) { - req, out := c.GetAccessPointPolicyStatusRequest(input) +// API operation DeletePublicAccessBlock for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeletePublicAccessBlock +func (c *S3Control) DeletePublicAccessBlock(input *DeletePublicAccessBlockInput) (*DeletePublicAccessBlockOutput, error) { + req, out := c.DeletePublicAccessBlockRequest(input) return out, req.Send() } -// GetAccessPointPolicyStatusWithContext is the same as GetAccessPointPolicyStatus with the addition of +// DeletePublicAccessBlockWithContext is the same as DeletePublicAccessBlock with the addition of // the ability to pass a context and additional request options. // -// See GetAccessPointPolicyStatus for details on how to use this API operation. +// See DeletePublicAccessBlock for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetAccessPointPolicyStatusWithContext(ctx aws.Context, input *GetAccessPointPolicyStatusInput, opts ...request.Option) (*GetAccessPointPolicyStatusOutput, error) { - req, out := c.GetAccessPointPolicyStatusRequest(input) +func (c *S3Control) DeletePublicAccessBlockWithContext(ctx aws.Context, input *DeletePublicAccessBlockInput, opts ...request.Option) (*DeletePublicAccessBlockOutput, error) { + req, out := c.DeletePublicAccessBlockRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetJobTagging = "GetJobTagging" +const opDescribeJob = "DescribeJob" -// GetJobTaggingRequest generates a "aws/request.Request" representing the -// client's request for the GetJobTagging operation. The "output" return +// DescribeJobRequest generates a "aws/request.Request" representing the +// client's request for the DescribeJob operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // -// See GetJobTagging for more information on using the GetJobTagging +// See DescribeJob for more information on using the DescribeJob // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // -// // Example sending a request using the GetJobTaggingRequest method. -// req, resp := client.GetJobTaggingRequest(params) +// // Example sending a request using the DescribeJobRequest method. +// req, resp := client.DescribeJobRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetJobTagging -func (c *S3Control) GetJobTaggingRequest(input *GetJobTaggingInput) (req *request.Request, output *GetJobTaggingOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DescribeJob +func (c *S3Control) DescribeJobRequest(input *DescribeJobInput) (req *request.Request, output *DescribeJobOutput) { op := &request.Operation{ - Name: opGetJobTagging, + Name: opDescribeJob, HTTPMethod: "GET", - HTTPPath: "/v20180820/jobs/{id}/tagging", + HTTPPath: "/v20180820/jobs/{id}", } if input == nil { - input = &GetJobTaggingInput{} + input = &DescribeJobInput{} } - output = &GetJobTaggingOutput{} + output = &DescribeJobOutput{} req = c.newRequest(op, input, output) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// GetJobTagging API operation for AWS S3 Control. +// DescribeJob API operation for AWS S3 Control. // -// Returns the tags on an Amazon S3 Batch Operations job. To use this operation, -// you must have permission to perform the s3:GetJobTagging action. For more -// information, see Using Job Tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags) +// Retrieves the configuration parameters and status for a Batch Operations +// job. For more information, see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html) // in the Amazon Simple Storage Service Developer Guide. // // Related actions include: // -// * CreateJob +// * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html) +// +// * ListJobs (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html) // -// * PutJobTagging +// * UpdateJobPriority (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobPriority.html) // -// * DeleteJobTagging +// * UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html) // // 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 // the error. // // See the AWS API reference guide for AWS S3 Control's -// API operation GetJobTagging for usage and error information. +// API operation DescribeJob for usage and error information. // // Returned Error Codes: -// * ErrCodeInternalServiceException "InternalServiceException" +// * ErrCodeBadRequestException "BadRequestException" // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // // * ErrCodeNotFoundException "NotFoundException" // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetJobTagging -func (c *S3Control) GetJobTagging(input *GetJobTaggingInput) (*GetJobTaggingOutput, error) { - req, out := c.GetJobTaggingRequest(input) +// * ErrCodeInternalServiceException "InternalServiceException" +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DescribeJob +func (c *S3Control) DescribeJob(input *DescribeJobInput) (*DescribeJobOutput, error) { + req, out := c.DescribeJobRequest(input) return out, req.Send() } -// GetJobTaggingWithContext is the same as GetJobTagging with the addition of +// DescribeJobWithContext is the same as DescribeJob with the addition of // the ability to pass a context and additional request options. // -// See GetJobTagging for details on how to use this API operation. +// See DescribeJob for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetJobTaggingWithContext(ctx aws.Context, input *GetJobTaggingInput, opts ...request.Option) (*GetJobTaggingOutput, error) { - req, out := c.GetJobTaggingRequest(input) +func (c *S3Control) DescribeJobWithContext(ctx aws.Context, input *DescribeJobInput, opts ...request.Option) (*DescribeJobOutput, error) { + req, out := c.DescribeJobRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetPublicAccessBlock = "GetPublicAccessBlock" +const opGetAccessPoint = "GetAccessPoint" -// GetPublicAccessBlockRequest generates a "aws/request.Request" representing the -// client's request for the GetPublicAccessBlock operation. The "output" return +// GetAccessPointRequest generates a "aws/request.Request" representing the +// client's request for the GetAccessPoint operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // -// See GetPublicAccessBlock for more information on using the GetPublicAccessBlock +// See GetAccessPoint for more information on using the GetAccessPoint // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // -// // Example sending a request using the GetPublicAccessBlockRequest method. -// req, resp := client.GetPublicAccessBlockRequest(params) +// // Example sending a request using the GetAccessPointRequest method. +// req, resp := client.GetAccessPointRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlock -func (c *S3Control) GetPublicAccessBlockRequest(input *GetPublicAccessBlockInput) (req *request.Request, output *GetPublicAccessBlockOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPoint +func (c *S3Control) GetAccessPointRequest(input *GetAccessPointInput) (req *request.Request, output *GetAccessPointOutput) { op := &request.Operation{ - Name: opGetPublicAccessBlock, + Name: opGetAccessPoint, HTTPMethod: "GET", - HTTPPath: "/v20180820/configuration/publicAccessBlock", + HTTPPath: "/v20180820/accesspoint/{name}", } if input == nil { - input = &GetPublicAccessBlockInput{} + input = &GetAccessPointInput{} } - output = &GetPublicAccessBlockOutput{} + output = &GetAccessPointOutput{} req = c.newRequest(op, input, output) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// GetPublicAccessBlock API operation for AWS S3 Control. +// GetAccessPoint API operation for AWS S3 Control. +// +// Returns configuration information about the specified access point. +// +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of outpost-id to be passed with the request and an S3 on Outposts +// endpoint hostname prefix instead of s3-control. For an example of the request +// syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname +// prefix and the outpost-id derived using the access point ARN, see the Example +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_GetAccessPoint.html#API_control_GetAccessPoint_Examples) +// section below. +// +// The following actions are related to GetAccessPoint: // -// Retrieves the PublicAccessBlock configuration for an Amazon Web Services -// account. +// * CreateAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html) +// +// * DeleteAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html) +// +// * ListAccessPoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListAccessPoints.html) // // 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 // the error. // // See the AWS API reference guide for AWS S3 Control's -// API operation GetPublicAccessBlock for usage and error information. -// -// Returned Error Codes: -// * ErrCodeNoSuchPublicAccessBlockConfiguration "NoSuchPublicAccessBlockConfiguration" -// Amazon S3 throws this exception if you make a GetPublicAccessBlock request -// against an account that doesn't have a PublicAccessBlockConfiguration set. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlock -func (c *S3Control) GetPublicAccessBlock(input *GetPublicAccessBlockInput) (*GetPublicAccessBlockOutput, error) { - req, out := c.GetPublicAccessBlockRequest(input) +// API operation GetAccessPoint for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPoint +func (c *S3Control) GetAccessPoint(input *GetAccessPointInput) (*GetAccessPointOutput, error) { + req, out := c.GetAccessPointRequest(input) return out, req.Send() } -// GetPublicAccessBlockWithContext is the same as GetPublicAccessBlock with the addition of +// GetAccessPointWithContext is the same as GetAccessPoint with the addition of // the ability to pass a context and additional request options. // -// See GetPublicAccessBlock for details on how to use this API operation. +// See GetAccessPoint for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) GetPublicAccessBlockWithContext(ctx aws.Context, input *GetPublicAccessBlockInput, opts ...request.Option) (*GetPublicAccessBlockOutput, error) { - req, out := c.GetPublicAccessBlockRequest(input) +func (c *S3Control) GetAccessPointWithContext(ctx aws.Context, input *GetAccessPointInput, opts ...request.Option) (*GetAccessPointOutput, error) { + req, out := c.GetAccessPointRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opListAccessPoints = "ListAccessPoints" +const opGetAccessPointPolicy = "GetAccessPointPolicy" -// ListAccessPointsRequest generates a "aws/request.Request" representing the -// client's request for the ListAccessPoints operation. The "output" return +// GetAccessPointPolicyRequest generates a "aws/request.Request" representing the +// client's request for the GetAccessPointPolicy operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // -// See ListAccessPoints for more information on using the ListAccessPoints +// See GetAccessPointPolicy for more information on using the GetAccessPointPolicy // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // -// // Example sending a request using the ListAccessPointsRequest method. -// req, resp := client.ListAccessPointsRequest(params) +// // Example sending a request using the GetAccessPointPolicyRequest method. +// req, resp := client.GetAccessPointPolicyRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPoints -func (c *S3Control) ListAccessPointsRequest(input *ListAccessPointsInput) (req *request.Request, output *ListAccessPointsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicy +func (c *S3Control) GetAccessPointPolicyRequest(input *GetAccessPointPolicyInput) (req *request.Request, output *GetAccessPointPolicyOutput) { op := &request.Operation{ - Name: opListAccessPoints, + Name: opGetAccessPointPolicy, HTTPMethod: "GET", - HTTPPath: "/v20180820/accesspoint", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, + HTTPPath: "/v20180820/accesspoint/{name}/policy", } if input == nil { - input = &ListAccessPointsInput{} + input = &GetAccessPointPolicyInput{} } - output = &ListAccessPointsOutput{} + output = &GetAccessPointPolicyOutput{} req = c.newRequest(op, input, output) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// ListAccessPoints API operation for AWS S3 Control. +// GetAccessPointPolicy API operation for AWS S3 Control. // -// Returns a list of the access points currently associated with the specified -// bucket. You can retrieve up to 1000 access points per call. If the specified -// bucket has more than 1,000 access points (or the number specified in maxResults, -// whichever is less), the response will include a continuation token that you -// can use to list the additional access points. +// Returns the access point policy associated with the specified access point. +// +// The following actions are related to GetAccessPointPolicy: +// +// * PutAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutAccessPointPolicy.html) +// +// * DeleteAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html) // // 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 // the error. // // See the AWS API reference guide for AWS S3 Control's -// API operation ListAccessPoints for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPoints -func (c *S3Control) ListAccessPoints(input *ListAccessPointsInput) (*ListAccessPointsOutput, error) { - req, out := c.ListAccessPointsRequest(input) +// API operation GetAccessPointPolicy for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicy +func (c *S3Control) GetAccessPointPolicy(input *GetAccessPointPolicyInput) (*GetAccessPointPolicyOutput, error) { + req, out := c.GetAccessPointPolicyRequest(input) return out, req.Send() } -// ListAccessPointsWithContext is the same as ListAccessPoints with the addition of +// GetAccessPointPolicyWithContext is the same as GetAccessPointPolicy with the addition of // the ability to pass a context and additional request options. // -// See ListAccessPoints for details on how to use this API operation. +// See GetAccessPointPolicy for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) ListAccessPointsWithContext(ctx aws.Context, input *ListAccessPointsInput, opts ...request.Option) (*ListAccessPointsOutput, error) { - req, out := c.ListAccessPointsRequest(input) +func (c *S3Control) GetAccessPointPolicyWithContext(ctx aws.Context, input *GetAccessPointPolicyInput, opts ...request.Option) (*GetAccessPointPolicyOutput, error) { + req, out := c.GetAccessPointPolicyRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// ListAccessPointsPages iterates over the pages of a ListAccessPoints operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListAccessPoints method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a ListAccessPoints operation. -// pageNum := 0 -// err := client.ListAccessPointsPages(params, -// func(page *s3control.ListAccessPointsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *S3Control) ListAccessPointsPages(input *ListAccessPointsInput, fn func(*ListAccessPointsOutput, bool) bool) error { - return c.ListAccessPointsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// ListAccessPointsPagesWithContext same as ListAccessPointsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *S3Control) ListAccessPointsPagesWithContext(ctx aws.Context, input *ListAccessPointsInput, fn func(*ListAccessPointsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *ListAccessPointsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.ListAccessPointsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*ListAccessPointsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opListJobs = "ListJobs" +const opGetAccessPointPolicyStatus = "GetAccessPointPolicyStatus" -// ListJobsRequest generates a "aws/request.Request" representing the -// client's request for the ListJobs operation. The "output" return +// GetAccessPointPolicyStatusRequest generates a "aws/request.Request" representing the +// client's request for the GetAccessPointPolicyStatus operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // -// See ListJobs for more information on using the ListJobs +// See GetAccessPointPolicyStatus for more information on using the GetAccessPointPolicyStatus // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // -// // Example sending a request using the ListJobsRequest method. -// req, resp := client.ListJobsRequest(params) +// // Example sending a request using the GetAccessPointPolicyStatusRequest method. +// req, resp := client.GetAccessPointPolicyStatusRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListJobs -func (c *S3Control) ListJobsRequest(input *ListJobsInput) (req *request.Request, output *ListJobsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatus +func (c *S3Control) GetAccessPointPolicyStatusRequest(input *GetAccessPointPolicyStatusInput) (req *request.Request, output *GetAccessPointPolicyStatusOutput) { op := &request.Operation{ - Name: opListJobs, + Name: opGetAccessPointPolicyStatus, HTTPMethod: "GET", - HTTPPath: "/v20180820/jobs", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, + HTTPPath: "/v20180820/accesspoint/{name}/policyStatus", } if input == nil { - input = &ListJobsInput{} + input = &GetAccessPointPolicyStatusInput{} } - output = &ListJobsOutput{} + output = &GetAccessPointPolicyStatusOutput{} req = c.newRequest(op, input, output) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// ListJobs API operation for AWS S3 Control. +// GetAccessPointPolicyStatus API operation for AWS S3 Control. // -// Lists current Amazon S3 Batch Operations jobs and jobs that have ended within -// the last 30 days for the AWS account making the request. For more information, -// see Amazon S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html) +// Indicates whether the specified access point currently has a policy that +// allows public access. For more information about public access through access +// points, see Managing Data Access with Amazon S3 Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points.html) // in the Amazon Simple Storage Service Developer Guide. // -// Related actions include: -// -// * CreateJob -// -// * DescribeJob -// -// * UpdateJobPriority -// -// * UpdateJobStatus -// // 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 // the error. // // See the AWS API reference guide for AWS S3 Control's -// API operation ListJobs for usage and error information. -// -// Returned Error Codes: -// * ErrCodeInvalidRequestException "InvalidRequestException" -// -// * ErrCodeInternalServiceException "InternalServiceException" -// -// * ErrCodeInvalidNextTokenException "InvalidNextTokenException" -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListJobs -func (c *S3Control) ListJobs(input *ListJobsInput) (*ListJobsOutput, error) { - req, out := c.ListJobsRequest(input) +// API operation GetAccessPointPolicyStatus for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatus +func (c *S3Control) GetAccessPointPolicyStatus(input *GetAccessPointPolicyStatusInput) (*GetAccessPointPolicyStatusOutput, error) { + req, out := c.GetAccessPointPolicyStatusRequest(input) return out, req.Send() } -// ListJobsWithContext is the same as ListJobs with the addition of +// GetAccessPointPolicyStatusWithContext is the same as GetAccessPointPolicyStatus with the addition of // the ability to pass a context and additional request options. // -// See ListJobs for details on how to use this API operation. +// See GetAccessPointPolicyStatus for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) ListJobsWithContext(ctx aws.Context, input *ListJobsInput, opts ...request.Option) (*ListJobsOutput, error) { - req, out := c.ListJobsRequest(input) +func (c *S3Control) GetAccessPointPolicyStatusWithContext(ctx aws.Context, input *GetAccessPointPolicyStatusInput, opts ...request.Option) (*GetAccessPointPolicyStatusOutput, error) { + req, out := c.GetAccessPointPolicyStatusRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// ListJobsPages iterates over the pages of a ListJobs operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See ListJobs method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a ListJobs operation. -// pageNum := 0 -// err := client.ListJobsPages(params, -// func(page *s3control.ListJobsOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *S3Control) ListJobsPages(input *ListJobsInput, fn func(*ListJobsOutput, bool) bool) error { - return c.ListJobsPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// ListJobsPagesWithContext same as ListJobsPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *S3Control) ListJobsPagesWithContext(ctx aws.Context, input *ListJobsInput, fn func(*ListJobsOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *ListJobsInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.ListJobsRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*ListJobsOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - -const opPutAccessPointPolicy = "PutAccessPointPolicy" +const opGetBucket = "GetBucket" -// PutAccessPointPolicyRequest generates a "aws/request.Request" representing the -// client's request for the PutAccessPointPolicy operation. The "output" return +// GetBucketRequest generates a "aws/request.Request" representing the +// client's request for the GetBucket operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // -// See PutAccessPointPolicy for more information on using the PutAccessPointPolicy +// See GetBucket for more information on using the GetBucket // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // -// // Example sending a request using the PutAccessPointPolicyRequest method. -// req, resp := client.PutAccessPointPolicyRequest(params) +// // Example sending a request using the GetBucketRequest method. +// req, resp := client.GetBucketRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicy -func (c *S3Control) PutAccessPointPolicyRequest(input *PutAccessPointPolicyInput) (req *request.Request, output *PutAccessPointPolicyOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucket +func (c *S3Control) GetBucketRequest(input *GetBucketInput) (req *request.Request, output *GetBucketOutput) { op := &request.Operation{ - Name: opPutAccessPointPolicy, - HTTPMethod: "PUT", - HTTPPath: "/v20180820/accesspoint/{name}/policy", + Name: opGetBucket, + HTTPMethod: "GET", + HTTPPath: "/v20180820/bucket/{name}", } if input == nil { - input = &PutAccessPointPolicyInput{} + input = &GetBucketInput{} } - output = &PutAccessPointPolicyOutput{} + output = &GetBucketOutput{} req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// PutAccessPointPolicy API operation for AWS S3 Control. +// GetBucket API operation for AWS S3 Control. // -// Associates an access policy with the specified access point. Each access -// point can have only one policy, so a request made to this API replaces any -// existing policy associated with the specified access point. +// Gets an Amazon S3 on Outposts bucket. For more information, see Using Amazon +// S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) +// in the Amazon Simple Storage Service Developer Guide. +// +// The following actions are related to GetBucket for Amazon S3 on Outposts: +// +// * PutObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) +// +// * CreateBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_CreateBucket.html) +// +// * DeleteBucket (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_DeleteBucket.html) // // 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 // the error. // // See the AWS API reference guide for AWS S3 Control's -// API operation PutAccessPointPolicy for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicy -func (c *S3Control) PutAccessPointPolicy(input *PutAccessPointPolicyInput) (*PutAccessPointPolicyOutput, error) { - req, out := c.PutAccessPointPolicyRequest(input) +// API operation GetBucket for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucket +func (c *S3Control) GetBucket(input *GetBucketInput) (*GetBucketOutput, error) { + req, out := c.GetBucketRequest(input) return out, req.Send() } -// PutAccessPointPolicyWithContext is the same as PutAccessPointPolicy with the addition of +// GetBucketWithContext is the same as GetBucket with the addition of // the ability to pass a context and additional request options. // -// See PutAccessPointPolicy for details on how to use this API operation. +// See GetBucket for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) PutAccessPointPolicyWithContext(ctx aws.Context, input *PutAccessPointPolicyInput, opts ...request.Option) (*PutAccessPointPolicyOutput, error) { - req, out := c.PutAccessPointPolicyRequest(input) +func (c *S3Control) GetBucketWithContext(ctx aws.Context, input *GetBucketInput, opts ...request.Option) (*GetBucketOutput, error) { + req, out := c.GetBucketRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opPutJobTagging = "PutJobTagging" +const opGetBucketLifecycleConfiguration = "GetBucketLifecycleConfiguration" -// PutJobTaggingRequest generates a "aws/request.Request" representing the -// client's request for the PutJobTagging operation. The "output" return +// GetBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the GetBucketLifecycleConfiguration operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // -// See PutJobTagging for more information on using the PutJobTagging +// See GetBucketLifecycleConfiguration for more information on using the GetBucketLifecycleConfiguration // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // -// // Example sending a request using the PutJobTaggingRequest method. -// req, resp := client.PutJobTaggingRequest(params) +// // Example sending a request using the GetBucketLifecycleConfigurationRequest method. +// req, resp := client.GetBucketLifecycleConfigurationRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTagging -func (c *S3Control) PutJobTaggingRequest(input *PutJobTaggingInput) (req *request.Request, output *PutJobTaggingOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketLifecycleConfiguration +func (c *S3Control) GetBucketLifecycleConfigurationRequest(input *GetBucketLifecycleConfigurationInput) (req *request.Request, output *GetBucketLifecycleConfigurationOutput) { op := &request.Operation{ - Name: opPutJobTagging, - HTTPMethod: "PUT", - HTTPPath: "/v20180820/jobs/{id}/tagging", + Name: opGetBucketLifecycleConfiguration, + HTTPMethod: "GET", + HTTPPath: "/v20180820/bucket/{name}/lifecycleconfiguration", } if input == nil { - input = &PutJobTaggingInput{} + input = &GetBucketLifecycleConfigurationInput{} } - output = &PutJobTaggingOutput{} + output = &GetBucketLifecycleConfigurationOutput{} req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// PutJobTagging API operation for AWS S3 Control. +// GetBucketLifecycleConfiguration API operation for AWS S3 Control. // -// Set the supplied tag-set on an Amazon S3 Batch Operations job. // -// A tag is a key-value pair. You can associate Amazon S3 Batch Operations tags -// with any job by sending a PUT request against the tagging subresource that -// is associated with the job. To modify the existing tag set, you can either -// replace the existing tag set entirely, or make changes within the existing -// tag set by retrieving the existing tag set using GetJobTagging, modify that -// tag set, and use this API action to replace the tag set with the one you -// have modified.. For more information, see Using Job Tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags) -// in the Amazon Simple Storage Service Developer Guide. +// This API operation gets an Amazon S3 on Outposts bucket's lifecycle configuration. +// To get an S3 bucket's lifecycle configuration, see GetBucketLifecycleConfiguration +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html) +// in the Amazon Simple Storage Service API. // -// * If you send this request with an empty tag set, Amazon S3 deletes the -// existing tag set on the Batch Operations job. If you use this method, -// you will be charged for a Tier 1 Request (PUT). For more information, -// see Amazon S3 pricing (http://aws.amazon.com/s3/pricing/). +// Returns the lifecycle configuration information set on the Outposts bucket. +// For more information, see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) +// and for information about lifecycle configuration, see Object Lifecycle Management +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) +// in Amazon Simple Storage Service Developer Guide. // -// * For deleting existing tags for your batch operations job, DeleteJobTagging -// request is preferred because it achieves the same result without incurring -// charges. +// To use this operation, you must have permission to perform the s3outposts:GetLifecycleConfiguration +// action. The Outposts bucket owner has this permission, by default. The bucket +// owner can grant this permission to others. For more information about permissions, +// see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) +// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html). // -// * A few things to consider about using tags: Amazon S3 limits the maximum -// number of tags to 50 tags per job. You can associate up to 50 tags with -// a job as long as they have unique tag keys. A tag key can be up to 128 -// Unicode characters in length, and tag values can be up to 256 Unicode -// characters in length. The key and values are case sensitive. For tagging-related -// restrictions related to characters and encodings, see User-Defined Tag -// Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html). +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of outpost-id to be passed with the request and an S3 on Outposts +// endpoint hostname prefix instead of s3-control. For an example of the request +// syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname +// prefix and the outpost-id derived using the access point ARN, see the Example +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_GetBucketLifecycleConfiguration.html#API_control_GetBucketLifecycleConfiguration_Examples) +// section below. // -// To use this operation, you must have permission to perform the s3:PutJobTagging -// action. +// GetBucketLifecycleConfiguration has the following special error: // -// Related actions include: +// * Error code: NoSuchLifecycleConfiguration Description: The lifecycle +// configuration does not exist. HTTP Status Code: 404 Not Found SOAP Fault +// Code Prefix: Client // -// * CreateJob +// The following actions are related to GetBucketLifecycleConfiguration: // -// * GetJobTagging +// * PutBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html) // -// * DeleteJobTagging +// * DeleteBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketLifecycleConfiguration.html) // // 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 // the error. // // See the AWS API reference guide for AWS S3 Control's -// API operation PutJobTagging for usage and error information. -// -// Returned Error Codes: -// * ErrCodeInternalServiceException "InternalServiceException" -// -// * ErrCodeTooManyRequestsException "TooManyRequestsException" -// -// * ErrCodeNotFoundException "NotFoundException" -// -// * ErrCodeTooManyTagsException "TooManyTagsException" -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTagging -func (c *S3Control) PutJobTagging(input *PutJobTaggingInput) (*PutJobTaggingOutput, error) { - req, out := c.PutJobTaggingRequest(input) +// API operation GetBucketLifecycleConfiguration for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketLifecycleConfiguration +func (c *S3Control) GetBucketLifecycleConfiguration(input *GetBucketLifecycleConfigurationInput) (*GetBucketLifecycleConfigurationOutput, error) { + req, out := c.GetBucketLifecycleConfigurationRequest(input) return out, req.Send() } -// PutJobTaggingWithContext is the same as PutJobTagging with the addition of +// GetBucketLifecycleConfigurationWithContext is the same as GetBucketLifecycleConfiguration with the addition of // the ability to pass a context and additional request options. // -// See PutJobTagging for details on how to use this API operation. +// See GetBucketLifecycleConfiguration for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) PutJobTaggingWithContext(ctx aws.Context, input *PutJobTaggingInput, opts ...request.Option) (*PutJobTaggingOutput, error) { - req, out := c.PutJobTaggingRequest(input) +func (c *S3Control) GetBucketLifecycleConfigurationWithContext(ctx aws.Context, input *GetBucketLifecycleConfigurationInput, opts ...request.Option) (*GetBucketLifecycleConfigurationOutput, error) { + req, out := c.GetBucketLifecycleConfigurationRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opPutPublicAccessBlock = "PutPublicAccessBlock" +const opGetBucketPolicy = "GetBucketPolicy" -// PutPublicAccessBlockRequest generates a "aws/request.Request" representing the -// client's request for the PutPublicAccessBlock operation. The "output" return +// GetBucketPolicyRequest generates a "aws/request.Request" representing the +// client's request for the GetBucketPolicy operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // -// See PutPublicAccessBlock for more information on using the PutPublicAccessBlock +// See GetBucketPolicy for more information on using the GetBucketPolicy // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // -// // Example sending a request using the PutPublicAccessBlockRequest method. -// req, resp := client.PutPublicAccessBlockRequest(params) +// // Example sending a request using the GetBucketPolicyRequest method. +// req, resp := client.GetBucketPolicyRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutPublicAccessBlock -func (c *S3Control) PutPublicAccessBlockRequest(input *PutPublicAccessBlockInput) (req *request.Request, output *PutPublicAccessBlockOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketPolicy +func (c *S3Control) GetBucketPolicyRequest(input *GetBucketPolicyInput) (req *request.Request, output *GetBucketPolicyOutput) { op := &request.Operation{ - Name: opPutPublicAccessBlock, - HTTPMethod: "PUT", - HTTPPath: "/v20180820/configuration/publicAccessBlock", + Name: opGetBucketPolicy, + HTTPMethod: "GET", + HTTPPath: "/v20180820/bucket/{name}/policy", } if input == nil { - input = &PutPublicAccessBlockInput{} + input = &GetBucketPolicyInput{} } - output = &PutPublicAccessBlockOutput{} + output = &GetBucketPolicyOutput{} req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// PutPublicAccessBlock API operation for AWS S3 Control. +// GetBucketPolicy API operation for AWS S3 Control. +// +// +// This API action gets a bucket policy for an Amazon S3 on Outposts bucket. +// To get a policy for an S3 bucket, see GetBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketPolicy.html) +// in the Amazon Simple Storage Service API. +// +// Returns the policy of a specified Outposts bucket. For more information, +// see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) +// in the Amazon Simple Storage Service Developer Guide. +// +// If you are using an identity other than the root user of the AWS account +// that owns the bucket, the calling identity must have the GetBucketPolicy +// permissions on the specified bucket and belong to the bucket owner's account +// in order to use this operation. +// +// If you don't have s3outposts:GetBucketPolicy permissions, Amazon S3 returns +// a 403 Access Denied error. If you have the correct permissions, but you're +// not using an identity that belongs to the bucket owner's account, Amazon +// S3 returns a 405 Method Not Allowed error. // -// Creates or modifies the PublicAccessBlock configuration for an Amazon Web -// Services account. +// As a security precaution, the root user of the AWS account that owns a bucket +// can always use this operation, even if the policy explicitly denies the root +// user the ability to perform this action. +// +// For more information about bucket policies, see Using Bucket Policies and +// User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). +// +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of outpost-id to be passed with the request and an S3 on Outposts +// endpoint hostname prefix instead of s3-control. For an example of the request +// syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname +// prefix and the outpost-id derived using the access point ARN, see the Example +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_GetBucketPolicy.html#API_control_GetBucketPolicy_Examples) +// section below. +// +// The following actions are related to GetBucketPolicy: +// +// * GetObject (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) +// +// * PutBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketPolicy.html) +// +// * DeleteBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketPolicy.html) // // 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 // the error. // // See the AWS API reference guide for AWS S3 Control's -// API operation PutPublicAccessBlock for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutPublicAccessBlock -func (c *S3Control) PutPublicAccessBlock(input *PutPublicAccessBlockInput) (*PutPublicAccessBlockOutput, error) { - req, out := c.PutPublicAccessBlockRequest(input) +// API operation GetBucketPolicy for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketPolicy +func (c *S3Control) GetBucketPolicy(input *GetBucketPolicyInput) (*GetBucketPolicyOutput, error) { + req, out := c.GetBucketPolicyRequest(input) return out, req.Send() } -// PutPublicAccessBlockWithContext is the same as PutPublicAccessBlock with the addition of +// GetBucketPolicyWithContext is the same as GetBucketPolicy with the addition of // the ability to pass a context and additional request options. // -// See PutPublicAccessBlock for details on how to use this API operation. +// See GetBucketPolicy for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) PutPublicAccessBlockWithContext(ctx aws.Context, input *PutPublicAccessBlockInput, opts ...request.Option) (*PutPublicAccessBlockOutput, error) { - req, out := c.PutPublicAccessBlockRequest(input) +func (c *S3Control) GetBucketPolicyWithContext(ctx aws.Context, input *GetBucketPolicyInput, opts ...request.Option) (*GetBucketPolicyOutput, error) { + req, out := c.GetBucketPolicyRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opUpdateJobPriority = "UpdateJobPriority" +const opGetBucketTagging = "GetBucketTagging" -// UpdateJobPriorityRequest generates a "aws/request.Request" representing the -// client's request for the UpdateJobPriority operation. The "output" return +// GetBucketTaggingRequest generates a "aws/request.Request" representing the +// client's request for the GetBucketTagging operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // -// See UpdateJobPriority for more information on using the UpdateJobPriority +// See GetBucketTagging for more information on using the GetBucketTagging // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // -// // Example sending a request using the UpdateJobPriorityRequest method. -// req, resp := client.UpdateJobPriorityRequest(params) +// // Example sending a request using the GetBucketTaggingRequest method. +// req, resp := client.GetBucketTaggingRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobPriority -func (c *S3Control) UpdateJobPriorityRequest(input *UpdateJobPriorityInput) (req *request.Request, output *UpdateJobPriorityOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketTagging +func (c *S3Control) GetBucketTaggingRequest(input *GetBucketTaggingInput) (req *request.Request, output *GetBucketTaggingOutput) { op := &request.Operation{ - Name: opUpdateJobPriority, - HTTPMethod: "POST", - HTTPPath: "/v20180820/jobs/{id}/priority", + Name: opGetBucketTagging, + HTTPMethod: "GET", + HTTPPath: "/v20180820/bucket/{name}/tagging", } if input == nil { - input = &UpdateJobPriorityInput{} + input = &GetBucketTaggingInput{} } - output = &UpdateJobPriorityOutput{} + output = &GetBucketTaggingOutput{} req = c.newRequest(op, input, output) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// UpdateJobPriority API operation for AWS S3 Control. +// GetBucketTagging API operation for AWS S3 Control. +// // -// Updates an existing Amazon S3 Batch Operations job's priority. For more information, -// see Amazon S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html) +// This API operation gets an Amazon S3 on Outposts bucket's tags. To get an +// S3 bucket tags, see GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html) +// in the Amazon Simple Storage Service API. +// +// Returns the tag set associated with the Outposts bucket. For more information, +// see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) // in the Amazon Simple Storage Service Developer Guide. // -// Related actions include: +// To use this operation, you must have permission to perform the GetBucketTagging +// action. By default, the bucket owner has this permission and can grant this +// permission to others. // -// * CreateJob +// GetBucketTagging has the following special error: // -// * ListJobs +// * Error code: NoSuchTagSetError Description: There is no tag set associated +// with the bucket. // -// * DescribeJob +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of outpost-id to be passed with the request and an S3 on Outposts +// endpoint hostname prefix instead of s3-control. For an example of the request +// syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname +// prefix and the outpost-id derived using the access point ARN, see the Example +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_GetBucketTagging.html#API_control_GetBucketTagging_Examples) +// section below. // -// * UpdateJobStatus +// The following actions are related to GetBucketTagging: +// +// * PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketTagging.html) +// +// * DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketTagging.html) // // 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 // the error. // // See the AWS API reference guide for AWS S3 Control's -// API operation UpdateJobPriority for usage and error information. -// -// Returned Error Codes: -// * ErrCodeBadRequestException "BadRequestException" -// -// * ErrCodeTooManyRequestsException "TooManyRequestsException" -// -// * ErrCodeNotFoundException "NotFoundException" -// -// * ErrCodeInternalServiceException "InternalServiceException" -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobPriority -func (c *S3Control) UpdateJobPriority(input *UpdateJobPriorityInput) (*UpdateJobPriorityOutput, error) { - req, out := c.UpdateJobPriorityRequest(input) +// API operation GetBucketTagging for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetBucketTagging +func (c *S3Control) GetBucketTagging(input *GetBucketTaggingInput) (*GetBucketTaggingOutput, error) { + req, out := c.GetBucketTaggingRequest(input) return out, req.Send() } -// UpdateJobPriorityWithContext is the same as UpdateJobPriority with the addition of +// GetBucketTaggingWithContext is the same as GetBucketTagging with the addition of // the ability to pass a context and additional request options. // -// See UpdateJobPriority for details on how to use this API operation. +// See GetBucketTagging for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) UpdateJobPriorityWithContext(ctx aws.Context, input *UpdateJobPriorityInput, opts ...request.Option) (*UpdateJobPriorityOutput, error) { - req, out := c.UpdateJobPriorityRequest(input) +func (c *S3Control) GetBucketTaggingWithContext(ctx aws.Context, input *GetBucketTaggingInput, opts ...request.Option) (*GetBucketTaggingOutput, error) { + req, out := c.GetBucketTaggingRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opUpdateJobStatus = "UpdateJobStatus" +const opGetJobTagging = "GetJobTagging" -// UpdateJobStatusRequest generates a "aws/request.Request" representing the -// client's request for the UpdateJobStatus operation. The "output" return +// GetJobTaggingRequest generates a "aws/request.Request" representing the +// client's request for the GetJobTagging operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // -// See UpdateJobStatus for more information on using the UpdateJobStatus +// See GetJobTagging for more information on using the GetJobTagging // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // -// // Example sending a request using the UpdateJobStatusRequest method. -// req, resp := client.UpdateJobStatusRequest(params) +// // Example sending a request using the GetJobTaggingRequest method. +// req, resp := client.GetJobTaggingRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobStatus -func (c *S3Control) UpdateJobStatusRequest(input *UpdateJobStatusInput) (req *request.Request, output *UpdateJobStatusOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetJobTagging +func (c *S3Control) GetJobTaggingRequest(input *GetJobTaggingInput) (req *request.Request, output *GetJobTaggingOutput) { op := &request.Operation{ - Name: opUpdateJobStatus, - HTTPMethod: "POST", - HTTPPath: "/v20180820/jobs/{id}/status", + Name: opGetJobTagging, + HTTPMethod: "GET", + HTTPPath: "/v20180820/jobs/{id}/tagging", } if input == nil { - input = &UpdateJobStatusInput{} + input = &GetJobTaggingInput{} } - output = &UpdateJobStatusOutput{} + output = &GetJobTaggingOutput{} req = c.newRequest(op, input, output) req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) return } -// UpdateJobStatus API operation for AWS S3 Control. +// GetJobTagging API operation for AWS S3 Control. // -// Updates the status for the specified job. Use this operation to confirm that -// you want to run a job or to cancel an existing job. For more information, -// see Amazon S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html) +// Returns the tags on an S3 Batch Operations job. To use this operation, you +// must have permission to perform the s3:GetJobTagging action. For more information, +// see Controlling access and labeling jobs using tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags) // in the Amazon Simple Storage Service Developer Guide. // // Related actions include: // -// * CreateJob +// * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html) // -// * ListJobs +// * PutJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutJobTagging.html) // -// * DescribeJob -// -// * UpdateJobStatus +// * DeleteJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html) // // 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 // the error. // // See the AWS API reference guide for AWS S3 Control's -// API operation UpdateJobStatus for usage and error information. +// API operation GetJobTagging for usage and error information. // // Returned Error Codes: -// * ErrCodeBadRequestException "BadRequestException" +// * ErrCodeInternalServiceException "InternalServiceException" // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // // * ErrCodeNotFoundException "NotFoundException" // -// * ErrCodeJobStatusException "JobStatusException" -// -// * ErrCodeInternalServiceException "InternalServiceException" -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobStatus -func (c *S3Control) UpdateJobStatus(input *UpdateJobStatusInput) (*UpdateJobStatusOutput, error) { - req, out := c.UpdateJobStatusRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetJobTagging +func (c *S3Control) GetJobTagging(input *GetJobTaggingInput) (*GetJobTaggingOutput, error) { + req, out := c.GetJobTaggingRequest(input) return out, req.Send() } -// UpdateJobStatusWithContext is the same as UpdateJobStatus with the addition of +// GetJobTaggingWithContext is the same as GetJobTagging with the addition of // the ability to pass a context and additional request options. // -// See UpdateJobStatus for details on how to use this API operation. +// See GetJobTagging for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. -func (c *S3Control) UpdateJobStatusWithContext(ctx aws.Context, input *UpdateJobStatusInput, opts ...request.Option) (*UpdateJobStatusOutput, error) { - req, out := c.UpdateJobStatusRequest(input) +func (c *S3Control) GetJobTaggingWithContext(ctx aws.Context, input *GetJobTaggingInput, opts ...request.Option) (*GetJobTaggingOutput, error) { + req, out := c.GetJobTaggingRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// An access point used to access a bucket. -type AccessPoint struct { - _ struct{} `type:"structure"` - - // The name of the bucket associated with this access point. - // - // Bucket is a required field - Bucket *string `min:"3" type:"string" required:"true"` - - // The name of this access point. - // - // Name is a required field - Name *string `min:"3" type:"string" required:"true"` - - // Indicates whether this access point allows access from the public internet. - // If VpcConfiguration is specified for this access point, then NetworkOrigin - // is VPC, and the access point doesn't allow access from the public internet. - // Otherwise, NetworkOrigin is Internet, and the access point allows access - // from the public internet, subject to the access point and bucket access policies. - // - // NetworkOrigin is a required field - NetworkOrigin *string `type:"string" required:"true" enum:"NetworkOrigin"` - - // The virtual private cloud (VPC) configuration for this access point, if one - // exists. - VpcConfiguration *VpcConfiguration `type:"structure"` -} - -// String returns the string representation -func (s AccessPoint) String() string { - return awsutil.Prettify(s) -} +const opGetPublicAccessBlock = "GetPublicAccessBlock" -// GoString returns the string representation -func (s AccessPoint) GoString() string { - return s.String() -} +// GetPublicAccessBlockRequest generates a "aws/request.Request" representing the +// client's request for the GetPublicAccessBlock operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See GetPublicAccessBlock for more information on using the GetPublicAccessBlock +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the GetPublicAccessBlockRequest method. +// req, resp := client.GetPublicAccessBlockRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlock +func (c *S3Control) GetPublicAccessBlockRequest(input *GetPublicAccessBlockInput) (req *request.Request, output *GetPublicAccessBlockOutput) { + op := &request.Operation{ + Name: opGetPublicAccessBlock, + HTTPMethod: "GET", + HTTPPath: "/v20180820/configuration/publicAccessBlock", + } -// SetBucket sets the Bucket field's value. -func (s *AccessPoint) SetBucket(v string) *AccessPoint { - s.Bucket = &v - return s -} + if input == nil { + input = &GetPublicAccessBlockInput{} + } -// SetName sets the Name field's value. -func (s *AccessPoint) SetName(v string) *AccessPoint { - s.Name = &v - return s + output = &GetPublicAccessBlockOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return } -// SetNetworkOrigin sets the NetworkOrigin field's value. -func (s *AccessPoint) SetNetworkOrigin(v string) *AccessPoint { - s.NetworkOrigin = &v - return s +// GetPublicAccessBlock API operation for AWS S3 Control. +// +// Retrieves the PublicAccessBlock configuration for an AWS account. For more +// information, see Using Amazon S3 block public access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html). +// +// Related actions include: +// +// * DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeletePublicAccessBlock.html) +// +// * PutPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutPublicAccessBlock.html) +// +// 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 +// the error. +// +// See the AWS API reference guide for AWS S3 Control's +// API operation GetPublicAccessBlock for usage and error information. +// +// Returned Error Codes: +// * ErrCodeNoSuchPublicAccessBlockConfiguration "NoSuchPublicAccessBlockConfiguration" +// Amazon S3 throws this exception if you make a GetPublicAccessBlock request +// against an account that doesn't have a PublicAccessBlockConfiguration set. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetPublicAccessBlock +func (c *S3Control) GetPublicAccessBlock(input *GetPublicAccessBlockInput) (*GetPublicAccessBlockOutput, error) { + req, out := c.GetPublicAccessBlockRequest(input) + return out, req.Send() } -// SetVpcConfiguration sets the VpcConfiguration field's value. -func (s *AccessPoint) SetVpcConfiguration(v *VpcConfiguration) *AccessPoint { - s.VpcConfiguration = v - return s +// GetPublicAccessBlockWithContext is the same as GetPublicAccessBlock with the addition of +// the ability to pass a context and additional request options. +// +// See GetPublicAccessBlock for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) GetPublicAccessBlockWithContext(ctx aws.Context, input *GetPublicAccessBlockInput, opts ...request.Option) (*GetPublicAccessBlockOutput, error) { + req, out := c.GetPublicAccessBlockRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() } -type CreateAccessPointInput struct { - _ struct{} `locationName:"CreateAccessPointRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` - - // The AWS account ID for the owner of the bucket for which you want to create - // an access point. - // - // AccountId is a required field - AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - - // The name of the bucket that you want to associate this access point with. - // - // Bucket is a required field - Bucket *string `min:"3" type:"string" required:"true"` +const opListAccessPoints = "ListAccessPoints" + +// ListAccessPointsRequest generates a "aws/request.Request" representing the +// client's request for the ListAccessPoints operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListAccessPoints for more information on using the ListAccessPoints +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ListAccessPointsRequest method. +// req, resp := client.ListAccessPointsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPoints +func (c *S3Control) ListAccessPointsRequest(input *ListAccessPointsInput) (req *request.Request, output *ListAccessPointsOutput) { + op := &request.Operation{ + Name: opListAccessPoints, + HTTPMethod: "GET", + HTTPPath: "/v20180820/accesspoint", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListAccessPointsInput{} + } + + output = &ListAccessPointsOutput{} + req = c.newRequest(op, input, output) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// ListAccessPoints API operation for AWS S3 Control. +// +// Returns a list of the access points currently associated with the specified +// bucket. You can retrieve up to 1000 access points per call. If the specified +// bucket has more than 1,000 access points (or the number specified in maxResults, +// whichever is less), the response will include a continuation token that you +// can use to list the additional access points. +// +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of outpost-id to be passed with the request and an S3 on Outposts +// endpoint hostname prefix instead of s3-control. For an example of the request +// syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname +// prefix and the outpost-id derived using the access point ARN, see the Example +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_GetAccessPoint.html#API_control_GetAccessPoint_Examples) +// section below. +// +// The following actions are related to ListAccessPoints: +// +// * CreateAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateAccessPoint.html) +// +// * DeleteAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPoint.html) +// +// * GetAccessPoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPoint.html) +// +// 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 +// the error. +// +// See the AWS API reference guide for AWS S3 Control's +// API operation ListAccessPoints for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPoints +func (c *S3Control) ListAccessPoints(input *ListAccessPointsInput) (*ListAccessPointsOutput, error) { + req, out := c.ListAccessPointsRequest(input) + return out, req.Send() +} + +// ListAccessPointsWithContext is the same as ListAccessPoints with the addition of +// the ability to pass a context and additional request options. +// +// See ListAccessPoints for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) ListAccessPointsWithContext(ctx aws.Context, input *ListAccessPointsInput, opts ...request.Option) (*ListAccessPointsOutput, error) { + req, out := c.ListAccessPointsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListAccessPointsPages iterates over the pages of a ListAccessPoints operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListAccessPoints method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListAccessPoints operation. +// pageNum := 0 +// err := client.ListAccessPointsPages(params, +// func(page *s3control.ListAccessPointsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *S3Control) ListAccessPointsPages(input *ListAccessPointsInput, fn func(*ListAccessPointsOutput, bool) bool) error { + return c.ListAccessPointsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListAccessPointsPagesWithContext same as ListAccessPointsPages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) ListAccessPointsPagesWithContext(ctx aws.Context, input *ListAccessPointsInput, fn func(*ListAccessPointsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListAccessPointsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListAccessPointsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListAccessPointsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListJobs = "ListJobs" + +// ListJobsRequest generates a "aws/request.Request" representing the +// client's request for the ListJobs operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListJobs for more information on using the ListJobs +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ListJobsRequest method. +// req, resp := client.ListJobsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListJobs +func (c *S3Control) ListJobsRequest(input *ListJobsInput) (req *request.Request, output *ListJobsOutput) { + op := &request.Operation{ + Name: opListJobs, + HTTPMethod: "GET", + HTTPPath: "/v20180820/jobs", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListJobsInput{} + } + + output = &ListJobsOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// ListJobs API operation for AWS S3 Control. +// +// Lists current S3 Batch Operations jobs and jobs that have ended within the +// last 30 days for the AWS account making the request. For more information, +// see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html) +// in the Amazon Simple Storage Service Developer Guide. +// +// Related actions include: +// +// * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html) +// +// * DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html) +// +// * UpdateJobPriority (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobPriority.html) +// +// * UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html) +// +// 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 +// the error. +// +// See the AWS API reference guide for AWS S3 Control's +// API operation ListJobs for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidRequestException "InvalidRequestException" +// +// * ErrCodeInternalServiceException "InternalServiceException" +// +// * ErrCodeInvalidNextTokenException "InvalidNextTokenException" +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListJobs +func (c *S3Control) ListJobs(input *ListJobsInput) (*ListJobsOutput, error) { + req, out := c.ListJobsRequest(input) + return out, req.Send() +} + +// ListJobsWithContext is the same as ListJobs with the addition of +// the ability to pass a context and additional request options. +// +// See ListJobs for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) ListJobsWithContext(ctx aws.Context, input *ListJobsInput, opts ...request.Option) (*ListJobsOutput, error) { + req, out := c.ListJobsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListJobsPages iterates over the pages of a ListJobs operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListJobs method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListJobs operation. +// pageNum := 0 +// err := client.ListJobsPages(params, +// func(page *s3control.ListJobsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *S3Control) ListJobsPages(input *ListJobsInput, fn func(*ListJobsOutput, bool) bool) error { + return c.ListJobsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListJobsPagesWithContext same as ListJobsPages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) ListJobsPagesWithContext(ctx aws.Context, input *ListJobsInput, fn func(*ListJobsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListJobsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListJobsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListJobsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opListRegionalBuckets = "ListRegionalBuckets" + +// ListRegionalBucketsRequest generates a "aws/request.Request" representing the +// client's request for the ListRegionalBuckets operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListRegionalBuckets for more information on using the ListRegionalBuckets +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ListRegionalBucketsRequest method. +// req, resp := client.ListRegionalBucketsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListRegionalBuckets +func (c *S3Control) ListRegionalBucketsRequest(input *ListRegionalBucketsInput) (req *request.Request, output *ListRegionalBucketsOutput) { + op := &request.Operation{ + Name: opListRegionalBuckets, + HTTPMethod: "GET", + HTTPPath: "/v20180820/bucket", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListRegionalBucketsInput{} + } + + output = &ListRegionalBucketsOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// ListRegionalBuckets API operation for AWS S3 Control. +// +// Returns a list of all Outposts buckets in an Outposts that are owned by the +// authenticated sender of the request. For more information, see Using Amazon +// S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) +// in the Amazon Simple Storage Service Developer Guide. +// +// For an example of the request syntax for Amazon S3 on Outposts that uses +// the S3 on Outposts endpoint hostname prefix and outpost-id in your API request, +// see the Example (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_ListRegionalBuckets.html#API_control_ListRegionalBuckets_Examples) +// section below. +// +// 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 +// the error. +// +// See the AWS API reference guide for AWS S3 Control's +// API operation ListRegionalBuckets for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListRegionalBuckets +func (c *S3Control) ListRegionalBuckets(input *ListRegionalBucketsInput) (*ListRegionalBucketsOutput, error) { + req, out := c.ListRegionalBucketsRequest(input) + return out, req.Send() +} + +// ListRegionalBucketsWithContext is the same as ListRegionalBuckets with the addition of +// the ability to pass a context and additional request options. +// +// See ListRegionalBuckets for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) ListRegionalBucketsWithContext(ctx aws.Context, input *ListRegionalBucketsInput, opts ...request.Option) (*ListRegionalBucketsOutput, error) { + req, out := c.ListRegionalBucketsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListRegionalBucketsPages iterates over the pages of a ListRegionalBuckets operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListRegionalBuckets method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListRegionalBuckets operation. +// pageNum := 0 +// err := client.ListRegionalBucketsPages(params, +// func(page *s3control.ListRegionalBucketsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *S3Control) ListRegionalBucketsPages(input *ListRegionalBucketsInput, fn func(*ListRegionalBucketsOutput, bool) bool) error { + return c.ListRegionalBucketsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListRegionalBucketsPagesWithContext same as ListRegionalBucketsPages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) ListRegionalBucketsPagesWithContext(ctx aws.Context, input *ListRegionalBucketsInput, fn func(*ListRegionalBucketsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListRegionalBucketsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListRegionalBucketsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListRegionalBucketsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opPutAccessPointPolicy = "PutAccessPointPolicy" + +// PutAccessPointPolicyRequest generates a "aws/request.Request" representing the +// client's request for the PutAccessPointPolicy operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See PutAccessPointPolicy for more information on using the PutAccessPointPolicy +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the PutAccessPointPolicyRequest method. +// req, resp := client.PutAccessPointPolicyRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicy +func (c *S3Control) PutAccessPointPolicyRequest(input *PutAccessPointPolicyInput) (req *request.Request, output *PutAccessPointPolicyOutput) { + op := &request.Operation{ + Name: opPutAccessPointPolicy, + HTTPMethod: "PUT", + HTTPPath: "/v20180820/accesspoint/{name}/policy", + } + + if input == nil { + input = &PutAccessPointPolicyInput{} + } + + output = &PutAccessPointPolicyOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// PutAccessPointPolicy API operation for AWS S3 Control. +// +// Associates an access policy with the specified access point. Each access +// point can have only one policy, so a request made to this API replaces any +// existing policy associated with the specified access point. +// +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of outpost-id to be passed with the request and an S3 on Outposts +// endpoint hostname prefix instead of s3-control. For an example of the request +// syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname +// prefix and the outpost-id derived using the access point ARN, see the Example +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_PutAccessPointPolicy.html#API_control_PutAccessPointPolicy_Examples) +// section below. +// +// The following actions are related to PutAccessPointPolicy: +// +// * GetAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetAccessPointPolicy.html) +// +// * DeleteAccessPointPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteAccessPointPolicy.html) +// +// 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 +// the error. +// +// See the AWS API reference guide for AWS S3 Control's +// API operation PutAccessPointPolicy for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicy +func (c *S3Control) PutAccessPointPolicy(input *PutAccessPointPolicyInput) (*PutAccessPointPolicyOutput, error) { + req, out := c.PutAccessPointPolicyRequest(input) + return out, req.Send() +} + +// PutAccessPointPolicyWithContext is the same as PutAccessPointPolicy with the addition of +// the ability to pass a context and additional request options. +// +// See PutAccessPointPolicy for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) PutAccessPointPolicyWithContext(ctx aws.Context, input *PutAccessPointPolicyInput, opts ...request.Option) (*PutAccessPointPolicyOutput, error) { + req, out := c.PutAccessPointPolicyRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opPutBucketLifecycleConfiguration = "PutBucketLifecycleConfiguration" + +// PutBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the PutBucketLifecycleConfiguration operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See PutBucketLifecycleConfiguration for more information on using the PutBucketLifecycleConfiguration +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the PutBucketLifecycleConfigurationRequest method. +// req, resp := client.PutBucketLifecycleConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketLifecycleConfiguration +func (c *S3Control) PutBucketLifecycleConfigurationRequest(input *PutBucketLifecycleConfigurationInput) (req *request.Request, output *PutBucketLifecycleConfigurationOutput) { + op := &request.Operation{ + Name: opPutBucketLifecycleConfiguration, + HTTPMethod: "PUT", + HTTPPath: "/v20180820/bucket/{name}/lifecycleconfiguration", + } + + if input == nil { + input = &PutBucketLifecycleConfigurationInput{} + } + + output = &PutBucketLifecycleConfigurationOutput{} + req = c.newRequest(op, input, output) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) + return +} + +// PutBucketLifecycleConfiguration API operation for AWS S3 Control. +// +// +// This API action puts a lifecycle configuration to an Amazon S3 on Outposts +// bucket. To put a lifecycle configuration to an S3 bucket, see PutBucketLifecycleConfiguration +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html) +// in the Amazon Simple Storage Service API. +// +// Creates a new lifecycle configuration for the Outposts bucket or replaces +// an existing lifecycle configuration. Outposts buckets can only support a +// lifecycle that deletes objects after a certain period of time. For more information, +// see Managing Lifecycle Permissions for Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html). +// +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of outpost-id to be passed with the request and an S3 on Outposts +// endpoint hostname prefix instead of s3-control. For an example of the request +// syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname +// prefix and the outpost-id derived using the access point ARN, see the Example +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_PutBucketLifecycleConfiguration.html#API_control_PutBucketLifecycleConfiguration_Examples) +// section below. +// +// The following actions are related to PutBucketLifecycleConfiguration: +// +// * GetBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html) +// +// * DeleteBucketLifecycleConfiguration (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketLifecycleConfiguration.html) +// +// 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 +// the error. +// +// See the AWS API reference guide for AWS S3 Control's +// API operation PutBucketLifecycleConfiguration for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketLifecycleConfiguration +func (c *S3Control) PutBucketLifecycleConfiguration(input *PutBucketLifecycleConfigurationInput) (*PutBucketLifecycleConfigurationOutput, error) { + req, out := c.PutBucketLifecycleConfigurationRequest(input) + return out, req.Send() +} + +// PutBucketLifecycleConfigurationWithContext is the same as PutBucketLifecycleConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See PutBucketLifecycleConfiguration for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) PutBucketLifecycleConfigurationWithContext(ctx aws.Context, input *PutBucketLifecycleConfigurationInput, opts ...request.Option) (*PutBucketLifecycleConfigurationOutput, error) { + req, out := c.PutBucketLifecycleConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opPutBucketPolicy = "PutBucketPolicy" + +// PutBucketPolicyRequest generates a "aws/request.Request" representing the +// client's request for the PutBucketPolicy operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See PutBucketPolicy for more information on using the PutBucketPolicy +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the PutBucketPolicyRequest method. +// req, resp := client.PutBucketPolicyRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketPolicy +func (c *S3Control) PutBucketPolicyRequest(input *PutBucketPolicyInput) (req *request.Request, output *PutBucketPolicyOutput) { + op := &request.Operation{ + Name: opPutBucketPolicy, + HTTPMethod: "PUT", + HTTPPath: "/v20180820/bucket/{name}/policy", + } + + if input == nil { + input = &PutBucketPolicyInput{} + } + + output = &PutBucketPolicyOutput{} + req = c.newRequest(op, input, output) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) + return +} + +// PutBucketPolicy API operation for AWS S3 Control. +// +// +// This API action puts a bucket policy to an Amazon S3 on Outposts bucket. +// To put a policy on an S3 bucket, see PutBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketPolicy.html) +// in the Amazon Simple Storage Service API. +// +// Applies an Amazon S3 bucket policy to an Outposts bucket. For more information, +// see Using Amazon S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) +// in the Amazon Simple Storage Service Developer Guide. +// +// If you are using an identity other than the root user of the AWS account +// that owns the Outposts bucket, the calling identity must have the PutBucketPolicy +// permissions on the specified Outposts bucket and belong to the bucket owner's +// account in order to use this operation. +// +// If you don't have PutBucketPolicy permissions, Amazon S3 returns a 403 Access +// Denied error. If you have the correct permissions, but you're not using an +// identity that belongs to the bucket owner's account, Amazon S3 returns a +// 405 Method Not Allowed error. +// +// As a security precaution, the root user of the AWS account that owns a bucket +// can always use this operation, even if the policy explicitly denies the root +// user the ability to perform this action. +// +// For more information about bucket policies, see Using Bucket Policies and +// User Policies (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html). +// +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of outpost-id to be passed with the request and an S3 on Outposts +// endpoint hostname prefix instead of s3-control. For an example of the request +// syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname +// prefix and the outpost-id derived using the access point ARN, see the Example +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_PutBucketPolicy.html#API_control_PutBucketPolicy_Examples) +// section below. +// +// The following actions are related to PutBucketPolicy: +// +// * GetBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketPolicy.html) +// +// * DeleteBucketPolicy (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketPolicy.html) +// +// 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 +// the error. +// +// See the AWS API reference guide for AWS S3 Control's +// API operation PutBucketPolicy for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketPolicy +func (c *S3Control) PutBucketPolicy(input *PutBucketPolicyInput) (*PutBucketPolicyOutput, error) { + req, out := c.PutBucketPolicyRequest(input) + return out, req.Send() +} + +// PutBucketPolicyWithContext is the same as PutBucketPolicy with the addition of +// the ability to pass a context and additional request options. +// +// See PutBucketPolicy for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) PutBucketPolicyWithContext(ctx aws.Context, input *PutBucketPolicyInput, opts ...request.Option) (*PutBucketPolicyOutput, error) { + req, out := c.PutBucketPolicyRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opPutBucketTagging = "PutBucketTagging" + +// PutBucketTaggingRequest generates a "aws/request.Request" representing the +// client's request for the PutBucketTagging operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See PutBucketTagging for more information on using the PutBucketTagging +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the PutBucketTaggingRequest method. +// req, resp := client.PutBucketTaggingRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketTagging +func (c *S3Control) PutBucketTaggingRequest(input *PutBucketTaggingInput) (req *request.Request, output *PutBucketTaggingOutput) { + op := &request.Operation{ + Name: opPutBucketTagging, + HTTPMethod: "PUT", + HTTPPath: "/v20180820/bucket/{name}/tagging", + } + + if input == nil { + input = &PutBucketTaggingInput{} + } + + output = &PutBucketTaggingOutput{} + req = c.newRequest(op, input, output) + // update account id or check if provided input for account id member matches + // the account id present in ARN + req.Handlers.Validate.PushFrontNamed(updateAccountIDWithARNHandler) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + req.Handlers.Build.PushBackNamed(request.NamedHandler{ + Name: "contentMd5Handler", + Fn: checksum.AddBodyContentMD5Handler, + }) + return +} + +// PutBucketTagging API operation for AWS S3 Control. +// +// +// This API action puts tags on an Amazon S3 on Outposts bucket. To put tags +// on an S3 bucket, see PutBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html) +// in the Amazon Simple Storage Service API. +// +// Sets the tags for an Outposts bucket. For more information, see Using Amazon +// S3 on Outposts (https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html) +// in the Amazon Simple Storage Service Developer Guide. +// +// Use tags to organize your AWS bill to reflect your own cost structure. To +// do this, sign up to get your AWS account bill with tag key values included. +// Then, to see the cost of combined resources, organize your billing information +// according to resources with the same tag key values. For example, you can +// tag several resources with a specific application name, and then organize +// 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). +// +// Within a bucket, if you add a tag that has the same key as an existing tag, +// the new value overwrites the old value. For more information, see Using Cost +// Allocation in Amazon S3 Bucket Tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/CostAllocTagging.html). +// +// To use this operation, you must have permissions to perform the s3outposts:PutBucketTagging +// action. The Outposts bucket owner has this permission by default and can +// grant this permission to others. For more information about permissions, +// see Permissions Related to Bucket Subresource Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources) +// and Managing Access Permissions to Your Amazon S3 Resources (https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html). +// +// PutBucketTagging has the following special errors: +// +// * Error code: InvalidTagError Description: The tag provided was not a +// valid tag. This error can occur if the tag did not pass input validation. +// For information about tag restrictions, see User-Defined Tag Restrictions +// (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html) +// and AWS-Generated Cost Allocation Tag Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/aws-tag-restrictions.html). +// +// * Error code: MalformedXMLError Description: The XML provided does not +// match the schema. +// +// * Error code: OperationAbortedError Description: A conflicting conditional +// operation is currently in progress against this resource. Try again. +// +// * Error code: InternalError Description: The service was unable to apply +// the provided tag to the bucket. +// +// All Amazon S3 on Outposts REST API requests for this action require an additional +// parameter of outpost-id to be passed with the request and an S3 on Outposts +// endpoint hostname prefix instead of s3-control. For an example of the request +// syntax for Amazon S3 on Outposts that uses the S3 on Outposts endpoint hostname +// prefix and the outpost-id derived using the access point ARN, see the Example +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API__control_PutBucketTagging.html#API_control_PutBucketTagging_Examples) +// section below. +// +// The following actions are related to PutBucketTagging: +// +// * GetBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketTagging.html) +// +// * DeleteBucketTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteBucketTagging.html) +// +// 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 +// the error. +// +// See the AWS API reference guide for AWS S3 Control's +// API operation PutBucketTagging for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutBucketTagging +func (c *S3Control) PutBucketTagging(input *PutBucketTaggingInput) (*PutBucketTaggingOutput, error) { + req, out := c.PutBucketTaggingRequest(input) + return out, req.Send() +} + +// PutBucketTaggingWithContext is the same as PutBucketTagging with the addition of +// the ability to pass a context and additional request options. +// +// See PutBucketTagging for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) PutBucketTaggingWithContext(ctx aws.Context, input *PutBucketTaggingInput, opts ...request.Option) (*PutBucketTaggingOutput, error) { + req, out := c.PutBucketTaggingRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opPutJobTagging = "PutJobTagging" + +// PutJobTaggingRequest generates a "aws/request.Request" representing the +// client's request for the PutJobTagging operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See PutJobTagging for more information on using the PutJobTagging +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the PutJobTaggingRequest method. +// req, resp := client.PutJobTaggingRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTagging +func (c *S3Control) PutJobTaggingRequest(input *PutJobTaggingInput) (req *request.Request, output *PutJobTaggingOutput) { + op := &request.Operation{ + Name: opPutJobTagging, + HTTPMethod: "PUT", + HTTPPath: "/v20180820/jobs/{id}/tagging", + } + + if input == nil { + input = &PutJobTaggingInput{} + } + + output = &PutJobTaggingOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// PutJobTagging API operation for AWS S3 Control. +// +// Sets the supplied tag-set on an S3 Batch Operations job. +// +// A tag is a key-value pair. You can associate S3 Batch Operations tags with +// any job by sending a PUT request against the tagging subresource that is +// associated with the job. To modify the existing tag set, you can either replace +// the existing tag set entirely, or make changes within the existing tag set +// by retrieving the existing tag set using GetJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html), +// modify that tag set, and use this API action to replace the tag set with +// the one you modified. For more information, see Controlling access and labeling +// jobs using tags (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-managing-jobs.html#batch-ops-job-tags) +// in the Amazon Simple Storage Service Developer Guide. +// +// * If you send this request with an empty tag set, Amazon S3 deletes the +// existing tag set on the Batch Operations job. If you use this method, +// you are charged for a Tier 1 Request (PUT). For more information, see +// Amazon S3 pricing (http://aws.amazon.com/s3/pricing/). +// +// * For deleting existing tags for your Batch Operations job, a DeleteJobTagging +// (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html) +// request is preferred because it achieves the same result without incurring +// charges. +// +// * A few things to consider about using tags: Amazon S3 limits the maximum +// number of tags to 50 tags per job. You can associate up to 50 tags with +// a job as long as they have unique tag keys. A tag key can be up to 128 +// Unicode characters in length, and tag values can be up to 256 Unicode +// characters in length. The key and values are case sensitive. For tagging-related +// restrictions related to characters and encodings, see User-Defined Tag +// Restrictions (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html) +// in the AWS Billing and Cost Management User Guide. +// +// To use this operation, you must have permission to perform the s3:PutJobTagging +// action. +// +// Related actions include: +// +// * CreatJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html) +// +// * GetJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetJobTagging.html) +// +// * DeleteJobTagging (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeleteJobTagging.html) +// +// 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 +// the error. +// +// See the AWS API reference guide for AWS S3 Control's +// API operation PutJobTagging for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalServiceException "InternalServiceException" +// +// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// +// * ErrCodeNotFoundException "NotFoundException" +// +// * ErrCodeTooManyTagsException "TooManyTagsException" +// Amazon S3 throws this exception if you have too many tags in your tag set. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutJobTagging +func (c *S3Control) PutJobTagging(input *PutJobTaggingInput) (*PutJobTaggingOutput, error) { + req, out := c.PutJobTaggingRequest(input) + return out, req.Send() +} + +// PutJobTaggingWithContext is the same as PutJobTagging with the addition of +// the ability to pass a context and additional request options. +// +// See PutJobTagging for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) PutJobTaggingWithContext(ctx aws.Context, input *PutJobTaggingInput, opts ...request.Option) (*PutJobTaggingOutput, error) { + req, out := c.PutJobTaggingRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opPutPublicAccessBlock = "PutPublicAccessBlock" + +// PutPublicAccessBlockRequest generates a "aws/request.Request" representing the +// client's request for the PutPublicAccessBlock operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See PutPublicAccessBlock for more information on using the PutPublicAccessBlock +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the PutPublicAccessBlockRequest method. +// req, resp := client.PutPublicAccessBlockRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutPublicAccessBlock +func (c *S3Control) PutPublicAccessBlockRequest(input *PutPublicAccessBlockInput) (req *request.Request, output *PutPublicAccessBlockOutput) { + op := &request.Operation{ + Name: opPutPublicAccessBlock, + HTTPMethod: "PUT", + HTTPPath: "/v20180820/configuration/publicAccessBlock", + } + + if input == nil { + input = &PutPublicAccessBlockInput{} + } + + output = &PutPublicAccessBlockOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// PutPublicAccessBlock API operation for AWS S3 Control. +// +// Creates or modifies the PublicAccessBlock configuration for an AWS account. +// For more information, see Using Amazon S3 block public access (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html). +// +// Related actions include: +// +// * GetPublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetPublicAccessBlock.html) +// +// * DeletePublicAccessBlock (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DeletePublicAccessBlock.html) +// +// 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 +// the error. +// +// See the AWS API reference guide for AWS S3 Control's +// API operation PutPublicAccessBlock for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutPublicAccessBlock +func (c *S3Control) PutPublicAccessBlock(input *PutPublicAccessBlockInput) (*PutPublicAccessBlockOutput, error) { + req, out := c.PutPublicAccessBlockRequest(input) + return out, req.Send() +} + +// PutPublicAccessBlockWithContext is the same as PutPublicAccessBlock with the addition of +// the ability to pass a context and additional request options. +// +// See PutPublicAccessBlock for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) PutPublicAccessBlockWithContext(ctx aws.Context, input *PutPublicAccessBlockInput, opts ...request.Option) (*PutPublicAccessBlockOutput, error) { + req, out := c.PutPublicAccessBlockRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateJobPriority = "UpdateJobPriority" + +// UpdateJobPriorityRequest generates a "aws/request.Request" representing the +// client's request for the UpdateJobPriority operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See UpdateJobPriority for more information on using the UpdateJobPriority +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the UpdateJobPriorityRequest method. +// req, resp := client.UpdateJobPriorityRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobPriority +func (c *S3Control) UpdateJobPriorityRequest(input *UpdateJobPriorityInput) (req *request.Request, output *UpdateJobPriorityOutput) { + op := &request.Operation{ + Name: opUpdateJobPriority, + HTTPMethod: "POST", + HTTPPath: "/v20180820/jobs/{id}/priority", + } + + if input == nil { + input = &UpdateJobPriorityInput{} + } + + output = &UpdateJobPriorityOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// UpdateJobPriority API operation for AWS S3 Control. +// +// Updates an existing S3 Batch Operations job's priority. For more information, +// see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html) +// in the Amazon Simple Storage Service Developer Guide. +// +// Related actions include: +// +// * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html) +// +// * ListJobs (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html) +// +// * DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html) +// +// * UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html) +// +// 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 +// the error. +// +// See the AWS API reference guide for AWS S3 Control's +// API operation UpdateJobPriority for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// +// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// +// * ErrCodeNotFoundException "NotFoundException" +// +// * ErrCodeInternalServiceException "InternalServiceException" +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobPriority +func (c *S3Control) UpdateJobPriority(input *UpdateJobPriorityInput) (*UpdateJobPriorityOutput, error) { + req, out := c.UpdateJobPriorityRequest(input) + return out, req.Send() +} + +// UpdateJobPriorityWithContext is the same as UpdateJobPriority with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateJobPriority for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) UpdateJobPriorityWithContext(ctx aws.Context, input *UpdateJobPriorityInput, opts ...request.Option) (*UpdateJobPriorityOutput, error) { + req, out := c.UpdateJobPriorityRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateJobStatus = "UpdateJobStatus" + +// UpdateJobStatusRequest generates a "aws/request.Request" representing the +// client's request for the UpdateJobStatus operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See UpdateJobStatus for more information on using the UpdateJobStatus +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the UpdateJobStatusRequest method. +// req, resp := client.UpdateJobStatusRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobStatus +func (c *S3Control) UpdateJobStatusRequest(input *UpdateJobStatusInput) (req *request.Request, output *UpdateJobStatusOutput) { + op := &request.Operation{ + Name: opUpdateJobStatus, + HTTPMethod: "POST", + HTTPPath: "/v20180820/jobs/{id}/status", + } + + if input == nil { + input = &UpdateJobStatusInput{} + } + + output = &UpdateJobStatusOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Build.PushBackNamed(protocol.NewHostPrefixHandler("{AccountId}.", input.hostLabels)) + req.Handlers.Build.PushBackNamed(protocol.ValidateEndpointHostHandler) + return +} + +// UpdateJobStatus API operation for AWS S3 Control. +// +// Updates the status for the specified job. Use this operation to confirm that +// you want to run a job or to cancel an existing job. For more information, +// see S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-basics.html) +// in the Amazon Simple Storage Service Developer Guide. +// +// Related actions include: +// +// * CreateJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateJob.html) +// +// * ListJobs (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListJobs.html) +// +// * DescribeJob (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_DescribeJob.html) +// +// * UpdateJobStatus (https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UpdateJobStatus.html) +// +// 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 +// the error. +// +// See the AWS API reference guide for AWS S3 Control's +// API operation UpdateJobStatus for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// +// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// +// * ErrCodeNotFoundException "NotFoundException" +// +// * ErrCodeJobStatusException "JobStatusException" +// +// * ErrCodeInternalServiceException "InternalServiceException" +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/UpdateJobStatus +func (c *S3Control) UpdateJobStatus(input *UpdateJobStatusInput) (*UpdateJobStatusOutput, error) { + req, out := c.UpdateJobStatusRequest(input) + return out, req.Send() +} + +// UpdateJobStatusWithContext is the same as UpdateJobStatus with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateJobStatus for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Control) UpdateJobStatusWithContext(ctx aws.Context, input *UpdateJobStatusInput, opts ...request.Option) (*UpdateJobStatusOutput, error) { + req, out := c.UpdateJobStatusRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// The container for abort incomplete multipart upload +type AbortIncompleteMultipartUpload struct { + _ struct{} `type:"structure"` + + // Specifies the number of days after which Amazon S3 aborts an incomplete multipart + // upload to the Outposts bucket. + DaysAfterInitiation *int64 `type:"integer"` +} + +// String returns the string representation +func (s AbortIncompleteMultipartUpload) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AbortIncompleteMultipartUpload) GoString() string { + return s.String() +} + +// SetDaysAfterInitiation sets the DaysAfterInitiation field's value. +func (s *AbortIncompleteMultipartUpload) SetDaysAfterInitiation(v int64) *AbortIncompleteMultipartUpload { + s.DaysAfterInitiation = &v + return s +} + +// An access point used to access a bucket. +type AccessPoint struct { + _ struct{} `type:"structure"` + + // The ARN for the access point. + AccessPointArn *string `min:"4" type:"string"` + + // The name of the bucket associated with this access point. + // + // Bucket is a required field + Bucket *string `min:"3" type:"string" required:"true"` + + // The name of this access point. + // + // Name is a required field + Name *string `min:"3" type:"string" required:"true"` + + // Indicates whether this access point allows access from the public internet. + // If VpcConfiguration is specified for this access point, then NetworkOrigin + // is VPC, and the access point doesn't allow access from the public internet. + // Otherwise, NetworkOrigin is Internet, and the access point allows access + // from the public internet, subject to the access point and bucket access policies. + // + // NetworkOrigin is a required field + NetworkOrigin *string `type:"string" required:"true" enum:"NetworkOrigin"` + + // The virtual private cloud (VPC) configuration for this access point, if one + // exists. + VpcConfiguration *VpcConfiguration `type:"structure"` +} + +// String returns the string representation +func (s AccessPoint) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AccessPoint) GoString() string { + return s.String() +} + +// SetAccessPointArn sets the AccessPointArn field's value. +func (s *AccessPoint) SetAccessPointArn(v string) *AccessPoint { + s.AccessPointArn = &v + return s +} + +// SetBucket sets the Bucket field's value. +func (s *AccessPoint) SetBucket(v string) *AccessPoint { + s.Bucket = &v + return s +} + +// SetName sets the Name field's value. +func (s *AccessPoint) SetName(v string) *AccessPoint { + s.Name = &v + return s +} + +// SetNetworkOrigin sets the NetworkOrigin field's value. +func (s *AccessPoint) SetNetworkOrigin(v string) *AccessPoint { + s.NetworkOrigin = &v + return s +} + +// SetVpcConfiguration sets the VpcConfiguration field's value. +func (s *AccessPoint) SetVpcConfiguration(v *VpcConfiguration) *AccessPoint { + s.VpcConfiguration = v + return s +} + +type CreateAccessPointInput struct { + _ struct{} `locationName:"CreateAccessPointRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` + + // The AWS account ID for the owner of the bucket for which you want to create + // an access point. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The name of the bucket that you want to associate this access point with. + // + // For Amazon S3 on Outposts specify the ARN of the bucket accessed in the format + // arn:aws:s3-outposts:::outpost//bucket/. + // For example, to access the bucket reports through outpost my-outpost owned + // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. + // The value must be URL encoded. + // + // Bucket is a required field + Bucket *string `min:"3" type:"string" required:"true"` // The name you want to assign to this access point. // // Name is a required field Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` - - // The PublicAccessBlock configuration that you want to apply to this Amazon - // S3 bucket. You can enable the configuration options in any combination. For - // more information about when Amazon S3 considers a bucket or object public, - // see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) - // in the Amazon Simple Storage Service Developer Guide. - PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"` - - // If you include this field, Amazon S3 restricts access to this access point - // to requests from the specified virtual private cloud (VPC). - VpcConfiguration *VpcConfiguration `type:"structure"` + + // The PublicAccessBlock configuration that you want to apply to this Amazon + // S3 bucket. You can enable the configuration options in any combination. For + // more information about when Amazon S3 considers a bucket or object public, + // see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) + // in the Amazon Simple Storage Service Developer Guide. + // + // This is not supported for Amazon S3 on Outposts. + PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"` + + // If you include this field, Amazon S3 restricts access to this access point + // to requests from the specified virtual private cloud (VPC). + // + // This is required for creating an access point for Amazon S3 on Outposts buckets. + VpcConfiguration *VpcConfiguration `type:"structure"` +} + +// String returns the string representation +func (s CreateAccessPointInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateAccessPointInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateAccessPointInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateAccessPointInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + } + if s.VpcConfiguration != nil { + if err := s.VpcConfiguration.Validate(); err != nil { + invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *CreateAccessPointInput) SetAccountId(v string) *CreateAccessPointInput { + s.AccountId = &v + return s +} + +// SetBucket sets the Bucket field's value. +func (s *CreateAccessPointInput) SetBucket(v string) *CreateAccessPointInput { + s.Bucket = &v + return s +} + +// SetName sets the Name field's value. +func (s *CreateAccessPointInput) SetName(v string) *CreateAccessPointInput { + s.Name = &v + return s +} + +// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value. +func (s *CreateAccessPointInput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *CreateAccessPointInput { + s.PublicAccessBlockConfiguration = v + return s +} + +// SetVpcConfiguration sets the VpcConfiguration field's value. +func (s *CreateAccessPointInput) SetVpcConfiguration(v *VpcConfiguration) *CreateAccessPointInput { + s.VpcConfiguration = v + return s +} + +func (s *CreateAccessPointInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +func (s *CreateAccessPointInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) +} + +func (s *CreateAccessPointInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) +} + +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *CreateAccessPointInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + +func (s *CreateAccessPointInput) updateAccountID(accountId string) error { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + } else if *s.AccountId != accountId { + return fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil +} + +type CreateAccessPointOutput struct { + _ struct{} `type:"structure"` + + // The ARN of the access point. + AccessPointArn *string `min:"4" type:"string"` +} + +// String returns the string representation +func (s CreateAccessPointOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateAccessPointOutput) GoString() string { + return s.String() +} + +// SetAccessPointArn sets the AccessPointArn field's value. +func (s *CreateAccessPointOutput) SetAccessPointArn(v string) *CreateAccessPointOutput { + s.AccessPointArn = &v + return s +} + +// The container for the bucket configuration. +// +// This is not supported by Amazon S3 on Outposts buckets. +type CreateBucketConfiguration struct { + _ struct{} `type:"structure"` + + // Specifies the Region where the bucket will be created. If you are creating + // a bucket on the US East (N. Virginia) Region (us-east-1), you do not need + // to specify the location. + // + // This is not supported by Amazon S3 on Outposts buckets. + LocationConstraint *string `type:"string" enum:"BucketLocationConstraint"` +} + +// String returns the string representation +func (s CreateBucketConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateBucketConfiguration) GoString() string { + return s.String() +} + +// SetLocationConstraint sets the LocationConstraint field's value. +func (s *CreateBucketConfiguration) SetLocationConstraint(v string) *CreateBucketConfiguration { + s.LocationConstraint = &v + return s +} + +type CreateBucketInput struct { + _ struct{} `locationName:"CreateBucketRequest" type:"structure" payload:"CreateBucketConfiguration"` + + // The canned ACL to apply to the bucket. + // + // This is not supported by Amazon S3 on Outposts buckets. + ACL *string `location:"header" locationName:"x-amz-acl" type:"string" enum:"BucketCannedACL"` + + // The name of the bucket. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + + // The configuration information for the bucket. + // + // This is not supported by Amazon S3 on Outposts buckets. + CreateBucketConfiguration *CreateBucketConfiguration `locationName:"CreateBucketConfiguration" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` + + // Allows grantee the read, write, read ACP, and write ACP permissions on the + // bucket. + // + // This is not supported by Amazon S3 on Outposts buckets. + GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"` + + // Allows grantee to list the objects in the bucket. + // + // This is not supported by Amazon S3 on Outposts buckets. + GrantRead *string `location:"header" locationName:"x-amz-grant-read" type:"string"` + + // Allows grantee to read the bucket ACL. + // + // This is not supported by Amazon S3 on Outposts buckets. + GrantReadACP *string `location:"header" locationName:"x-amz-grant-read-acp" type:"string"` + + // Allows grantee to create, overwrite, and delete any object in the bucket. + // + // This is not supported by Amazon S3 on Outposts buckets. + GrantWrite *string `location:"header" locationName:"x-amz-grant-write" type:"string"` + + // Allows grantee to write the ACL for the applicable bucket. + // + // This is not supported by Amazon S3 on Outposts buckets. + GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"` + + // Specifies whether you want S3 Object Lock to be enabled for the new bucket. + // + // This is not supported by Amazon S3 on Outposts buckets. + ObjectLockEnabledForBucket *bool `location:"header" locationName:"x-amz-bucket-object-lock-enabled" type:"boolean"` + + // The ID of the Outposts where the bucket is being created. + // + // This is required by Amazon S3 on Outposts buckets. + OutpostId *string `location:"header" locationName:"x-amz-outpost-id" min:"1" type:"string"` +} + +// String returns the string representation +func (s CreateBucketInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateBucketInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateBucketInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateBucketInput"} + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) + } + if s.OutpostId != nil && len(*s.OutpostId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("OutpostId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetACL sets the ACL field's value. +func (s *CreateBucketInput) SetACL(v string) *CreateBucketInput { + s.ACL = &v + return s +} + +// SetBucket sets the Bucket field's value. +func (s *CreateBucketInput) SetBucket(v string) *CreateBucketInput { + s.Bucket = &v + return s +} + +// SetCreateBucketConfiguration sets the CreateBucketConfiguration field's value. +func (s *CreateBucketInput) SetCreateBucketConfiguration(v *CreateBucketConfiguration) *CreateBucketInput { + s.CreateBucketConfiguration = v + return s +} + +// SetGrantFullControl sets the GrantFullControl field's value. +func (s *CreateBucketInput) SetGrantFullControl(v string) *CreateBucketInput { + s.GrantFullControl = &v + return s +} + +// SetGrantRead sets the GrantRead field's value. +func (s *CreateBucketInput) SetGrantRead(v string) *CreateBucketInput { + s.GrantRead = &v + return s +} + +// SetGrantReadACP sets the GrantReadACP field's value. +func (s *CreateBucketInput) SetGrantReadACP(v string) *CreateBucketInput { + s.GrantReadACP = &v + return s +} + +// SetGrantWrite sets the GrantWrite field's value. +func (s *CreateBucketInput) SetGrantWrite(v string) *CreateBucketInput { + s.GrantWrite = &v + return s +} + +// SetGrantWriteACP sets the GrantWriteACP field's value. +func (s *CreateBucketInput) SetGrantWriteACP(v string) *CreateBucketInput { + s.GrantWriteACP = &v + return s +} + +// SetObjectLockEnabledForBucket sets the ObjectLockEnabledForBucket field's value. +func (s *CreateBucketInput) SetObjectLockEnabledForBucket(v bool) *CreateBucketInput { + s.ObjectLockEnabledForBucket = &v + return s +} + +// SetOutpostId sets the OutpostId field's value. +func (s *CreateBucketInput) SetOutpostId(v string) *CreateBucketInput { + s.OutpostId = &v + return s +} + +func (s *CreateBucketInput) getOutpostID() (string, error) { + if s.OutpostId == nil { + return "", fmt.Errorf("member OutpostId is nil") + } + return *s.OutpostId, nil +} + +func (s *CreateBucketInput) hasOutpostID() bool { + if s.OutpostId == nil { + return false + } + return true +} + +type CreateBucketOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the bucket. + // + // For Amazon S3 on Outposts specify the ARN of the bucket accessed in the format + // arn:aws:s3-outposts:::outpost//bucket/. + // For example, to access the bucket reports through outpost my-outpost owned + // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. + // The value must be URL encoded. + BucketArn *string `min:"4" type:"string"` + + // The location of the bucket. + Location *string `location:"header" locationName:"Location" type:"string"` +} + +// String returns the string representation +func (s CreateBucketOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateBucketOutput) GoString() string { + return s.String() +} + +// SetBucketArn sets the BucketArn field's value. +func (s *CreateBucketOutput) SetBucketArn(v string) *CreateBucketOutput { + s.BucketArn = &v + return s +} + +// SetLocation sets the Location field's value. +func (s *CreateBucketOutput) SetLocation(v string) *CreateBucketOutput { + s.Location = &v + return s +} + +type CreateJobInput struct { + _ struct{} `locationName:"CreateJobRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` + + // The AWS account ID that creates the job. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // An idempotency token to ensure that you don't accidentally submit the same + // request twice. You can use any string up to the maximum length. + ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"` + + // Indicates whether confirmation is required before Amazon S3 runs the job. + // Confirmation is only required for jobs created through the Amazon S3 console. + ConfirmationRequired *bool `type:"boolean"` + + // A description for this job. You can use any string within the permitted length. + // Descriptions don't need to be unique and can be used for multiple jobs. + Description *string `min:"1" type:"string"` + + // Configuration parameters for the manifest. + // + // Manifest is a required field + Manifest *JobManifest `type:"structure" required:"true"` + + // The operation that you want this job to perform on each object listed in + // the manifest. For more information about the available operations, see Operations + // (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-operations.html) + // in the Amazon Simple Storage Service Developer Guide. + // + // Operation is a required field + Operation *JobOperation `type:"structure" required:"true"` + + // The numerical priority for this job. Higher numbers indicate higher priority. + // + // Priority is a required field + Priority *int64 `type:"integer" required:"true"` + + // Configuration parameters for the optional job-completion report. + // + // Report is a required field + Report *JobReport `type:"structure" required:"true"` + + // The Amazon Resource Name (ARN) for the AWS Identity and Access Management + // (IAM) role that Batch Operations will use to run this job's operation on + // each object in the manifest. + // + // RoleArn is a required field + RoleArn *string `min:"1" type:"string" required:"true"` + + // A set of tags to associate with the S3 Batch Operations job. This is an optional + // parameter. + Tags []*S3Tag `type:"list"` +} + +// String returns the string representation +func (s CreateJobInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateJobInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateJobInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateJobInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1)) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.Manifest == nil { + invalidParams.Add(request.NewErrParamRequired("Manifest")) + } + if s.Operation == nil { + invalidParams.Add(request.NewErrParamRequired("Operation")) + } + if s.Priority == nil { + invalidParams.Add(request.NewErrParamRequired("Priority")) + } + if s.Report == nil { + invalidParams.Add(request.NewErrParamRequired("Report")) + } + if s.RoleArn == nil { + invalidParams.Add(request.NewErrParamRequired("RoleArn")) + } + if s.RoleArn != nil && len(*s.RoleArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1)) + } + if s.Manifest != nil { + if err := s.Manifest.Validate(); err != nil { + invalidParams.AddNested("Manifest", err.(request.ErrInvalidParams)) + } + } + if s.Operation != nil { + if err := s.Operation.Validate(); err != nil { + invalidParams.AddNested("Operation", err.(request.ErrInvalidParams)) + } + } + if s.Report != nil { + if err := s.Report.Validate(); err != nil { + invalidParams.AddNested("Report", 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 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *CreateJobInput) SetAccountId(v string) *CreateJobInput { + s.AccountId = &v + return s +} + +// SetClientRequestToken sets the ClientRequestToken field's value. +func (s *CreateJobInput) SetClientRequestToken(v string) *CreateJobInput { + s.ClientRequestToken = &v + return s +} + +// SetConfirmationRequired sets the ConfirmationRequired field's value. +func (s *CreateJobInput) SetConfirmationRequired(v bool) *CreateJobInput { + s.ConfirmationRequired = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *CreateJobInput) SetDescription(v string) *CreateJobInput { + s.Description = &v + return s +} + +// SetManifest sets the Manifest field's value. +func (s *CreateJobInput) SetManifest(v *JobManifest) *CreateJobInput { + s.Manifest = v + return s +} + +// SetOperation sets the Operation field's value. +func (s *CreateJobInput) SetOperation(v *JobOperation) *CreateJobInput { + s.Operation = v + return s +} + +// SetPriority sets the Priority field's value. +func (s *CreateJobInput) SetPriority(v int64) *CreateJobInput { + s.Priority = &v + return s +} + +// SetReport sets the Report field's value. +func (s *CreateJobInput) SetReport(v *JobReport) *CreateJobInput { + s.Report = v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *CreateJobInput) SetRoleArn(v string) *CreateJobInput { + s.RoleArn = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateJobInput) SetTags(v []*S3Tag) *CreateJobInput { + s.Tags = v + return s +} + +func (s *CreateJobInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +type CreateJobOutput struct { + _ struct{} `type:"structure"` + + // The ID for this job. Amazon S3 generates this ID automatically and returns + // it after a successful Create Job request. + JobId *string `min:"5" type:"string"` +} + +// String returns the string representation +func (s CreateJobOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateJobOutput) GoString() string { + return s.String() +} + +// SetJobId sets the JobId field's value. +func (s *CreateJobOutput) SetJobId(v string) *CreateJobOutput { + s.JobId = &v + return s +} + +type DeleteAccessPointInput struct { + _ struct{} `locationName:"DeleteAccessPointRequest" type:"structure"` + + // The account ID for the account that owns the specified access point. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The name of the access point you want to delete. + // + // For Amazon S3 on Outposts specify the ARN of the access point accessed in + // the format arn:aws:s3-outposts:::outpost//accesspoint/. + // For example, to access the access point reports-ap through outpost my-outpost + // owned by account 123456789012 in Region us-west-2, use the URL encoding of + // arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. + // The value must be URL encoded. + // + // Name is a required field + Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteAccessPointInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteAccessPointInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteAccessPointInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *DeleteAccessPointInput) SetAccountId(v string) *DeleteAccessPointInput { + s.AccountId = &v + return s +} + +// SetName sets the Name field's value. +func (s *DeleteAccessPointInput) SetName(v string) *DeleteAccessPointInput { + s.Name = &v + return s +} + +func (s *DeleteAccessPointInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +func (s *DeleteAccessPointInput) getEndpointARN() (arn.Resource, error) { + if s.Name == nil { + return nil, fmt.Errorf("member Name is nil") + } + return parseEndpointARN(*s.Name) +} + +func (s *DeleteAccessPointInput) hasEndpointARN() bool { + if s.Name == nil { + return false + } + return arn.IsARN(*s.Name) +} + +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *DeleteAccessPointInput) updateArnableField(v string) error { + if s.Name == nil { + return fmt.Errorf("member Name is nil") + } + s.Name = aws.String(v) + return nil +} + +func (s *DeleteAccessPointInput) updateAccountID(accountId string) error { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + } else if *s.AccountId != accountId { + return fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil +} + +type DeleteAccessPointOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteAccessPointOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteAccessPointOutput) GoString() string { + return s.String() +} + +type DeleteAccessPointPolicyInput struct { + _ struct{} `locationName:"DeleteAccessPointPolicyRequest" type:"structure"` + + // The account ID for the account that owns the specified access point. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The name of the access point whose policy you want to delete. + // + // For Amazon S3 on Outposts specify the ARN of the access point accessed in + // the format arn:aws:s3-outposts:::outpost//accesspoint/. + // For example, to access the access point reports-ap through outpost my-outpost + // owned by account 123456789012 in Region us-west-2, use the URL encoding of + // arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. + // The value must be URL encoded. + // + // Name is a required field + Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteAccessPointPolicyInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteAccessPointPolicyInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteAccessPointPolicyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointPolicyInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *DeleteAccessPointPolicyInput) SetAccountId(v string) *DeleteAccessPointPolicyInput { + s.AccountId = &v + return s +} + +// SetName sets the Name field's value. +func (s *DeleteAccessPointPolicyInput) SetName(v string) *DeleteAccessPointPolicyInput { + s.Name = &v + return s +} + +func (s *DeleteAccessPointPolicyInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +type DeleteAccessPointPolicyOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteAccessPointPolicyOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteAccessPointPolicyOutput) GoString() string { + return s.String() +} + +type DeleteBucketInput struct { + _ struct{} `locationName:"DeleteBucketRequest" type:"structure"` + + // The account ID that owns the Outposts bucket. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // Specifies the bucket being deleted. + // + // For Amazon S3 on Outposts specify the ARN of the bucket accessed in the format + // arn:aws:s3-outposts:::outpost//bucket/. + // For example, to access the bucket reports through outpost my-outpost owned + // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. + // The value must be URL encoded. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteBucketInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteBucketInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteBucketInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteBucketInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *DeleteBucketInput) SetAccountId(v string) *DeleteBucketInput { + s.AccountId = &v + return s +} + +// SetBucket sets the Bucket field's value. +func (s *DeleteBucketInput) SetBucket(v string) *DeleteBucketInput { + s.Bucket = &v + return s +} + +func (s *DeleteBucketInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +func (s *DeleteBucketInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) +} + +func (s *DeleteBucketInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) +} + +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *DeleteBucketInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + +func (s *DeleteBucketInput) updateAccountID(accountId string) error { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + } else if *s.AccountId != accountId { + return fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil +} + +type DeleteBucketLifecycleConfigurationInput struct { + _ struct{} `locationName:"DeleteBucketLifecycleConfigurationRequest" type:"structure"` + + // The account ID of the lifecycle configuration to delete. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The bucket ARN of the bucket. + // + // For Amazon S3 on Outposts specify the ARN of the bucket accessed in the format + // arn:aws:s3-outposts:::outpost//bucket/. + // For example, to access the bucket reports through outpost my-outpost owned + // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. + // The value must be URL encoded. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteBucketLifecycleConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteBucketLifecycleConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteBucketLifecycleConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteBucketLifecycleConfigurationInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *DeleteBucketLifecycleConfigurationInput) SetAccountId(v string) *DeleteBucketLifecycleConfigurationInput { + s.AccountId = &v + return s +} + +// SetBucket sets the Bucket field's value. +func (s *DeleteBucketLifecycleConfigurationInput) SetBucket(v string) *DeleteBucketLifecycleConfigurationInput { + s.Bucket = &v + return s +} + +func (s *DeleteBucketLifecycleConfigurationInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +func (s *DeleteBucketLifecycleConfigurationInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) +} + +func (s *DeleteBucketLifecycleConfigurationInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) +} + +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *DeleteBucketLifecycleConfigurationInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + +func (s *DeleteBucketLifecycleConfigurationInput) updateAccountID(accountId string) error { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + } else if *s.AccountId != accountId { + return fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil +} + +type DeleteBucketLifecycleConfigurationOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteBucketLifecycleConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteBucketLifecycleConfigurationOutput) GoString() string { + return s.String() +} + +type DeleteBucketOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteBucketOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteBucketOutput) GoString() string { + return s.String() +} + +type DeleteBucketPolicyInput struct { + _ struct{} `locationName:"DeleteBucketPolicyRequest" type:"structure"` + + // The account ID of the Outposts bucket. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The ARN of the bucket. + // + // For Amazon S3 on Outposts specify the ARN of the bucket accessed in the format + // arn:aws:s3-outposts:::outpost//bucket/. + // For example, to access the bucket reports through outpost my-outpost owned + // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. + // The value must be URL encoded. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteBucketPolicyInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteBucketPolicyInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteBucketPolicyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteBucketPolicyInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *DeleteBucketPolicyInput) SetAccountId(v string) *DeleteBucketPolicyInput { + s.AccountId = &v + return s +} + +// SetBucket sets the Bucket field's value. +func (s *DeleteBucketPolicyInput) SetBucket(v string) *DeleteBucketPolicyInput { + s.Bucket = &v + return s +} + +func (s *DeleteBucketPolicyInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +func (s *DeleteBucketPolicyInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) +} + +func (s *DeleteBucketPolicyInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) +} + +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *DeleteBucketPolicyInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + +func (s *DeleteBucketPolicyInput) updateAccountID(accountId string) error { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + } else if *s.AccountId != accountId { + return fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil +} + +type DeleteBucketPolicyOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteBucketPolicyOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteBucketPolicyOutput) GoString() string { + return s.String() +} + +type DeleteBucketTaggingInput struct { + _ struct{} `locationName:"DeleteBucketTaggingRequest" type:"structure"` + + // The AWS account ID of the Outposts bucket tag set to be removed. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The bucket ARN that has the tag set to be removed. + // + // For Amazon S3 on Outposts specify the ARN of the bucket accessed in the format + // arn:aws:s3-outposts:::outpost//bucket/. + // For example, to access the bucket reports through outpost my-outpost owned + // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. + // The value must be URL encoded. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteBucketTaggingInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteBucketTaggingInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteBucketTaggingInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteBucketTaggingInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *DeleteBucketTaggingInput) SetAccountId(v string) *DeleteBucketTaggingInput { + s.AccountId = &v + return s +} + +// SetBucket sets the Bucket field's value. +func (s *DeleteBucketTaggingInput) SetBucket(v string) *DeleteBucketTaggingInput { + s.Bucket = &v + return s +} + +func (s *DeleteBucketTaggingInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +func (s *DeleteBucketTaggingInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) +} + +func (s *DeleteBucketTaggingInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) +} + +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *DeleteBucketTaggingInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + +func (s *DeleteBucketTaggingInput) updateAccountID(accountId string) error { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + } else if *s.AccountId != accountId { + return fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil +} + +type DeleteBucketTaggingOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteBucketTaggingOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteBucketTaggingOutput) GoString() string { + return s.String() +} + +type DeleteJobTaggingInput struct { + _ struct{} `locationName:"DeleteJobTaggingRequest" type:"structure"` + + // The AWS account ID associated with the S3 Batch Operations job. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The ID for the S3 Batch Operations job whose tags you want to delete. + // + // JobId is a required field + JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteJobTaggingInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteJobTaggingInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteJobTaggingInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteJobTaggingInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.JobId == nil { + invalidParams.Add(request.NewErrParamRequired("JobId")) + } + if s.JobId != nil && len(*s.JobId) < 5 { + invalidParams.Add(request.NewErrParamMinLen("JobId", 5)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *DeleteJobTaggingInput) SetAccountId(v string) *DeleteJobTaggingInput { + s.AccountId = &v + return s +} + +// SetJobId sets the JobId field's value. +func (s *DeleteJobTaggingInput) SetJobId(v string) *DeleteJobTaggingInput { + s.JobId = &v + return s +} + +func (s *DeleteJobTaggingInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +type DeleteJobTaggingOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteJobTaggingOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteJobTaggingOutput) GoString() string { + return s.String() +} + +type DeletePublicAccessBlockInput struct { + _ struct{} `locationName:"DeletePublicAccessBlockRequest" type:"structure"` + + // The account ID for the AWS account whose PublicAccessBlock configuration + // you want to remove. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeletePublicAccessBlockInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeletePublicAccessBlockInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeletePublicAccessBlockInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeletePublicAccessBlockInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *DeletePublicAccessBlockInput) SetAccountId(v string) *DeletePublicAccessBlockInput { + s.AccountId = &v + return s +} + +func (s *DeletePublicAccessBlockInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +type DeletePublicAccessBlockOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeletePublicAccessBlockOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeletePublicAccessBlockOutput) GoString() string { + return s.String() +} + +type DescribeJobInput struct { + _ struct{} `locationName:"DescribeJobRequest" type:"structure"` + + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The ID for the job whose information you want to retrieve. + // + // JobId is a required field + JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeJobInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeJobInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeJobInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeJobInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.JobId == nil { + invalidParams.Add(request.NewErrParamRequired("JobId")) + } + if s.JobId != nil && len(*s.JobId) < 5 { + invalidParams.Add(request.NewErrParamMinLen("JobId", 5)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *DescribeJobInput) SetAccountId(v string) *DescribeJobInput { + s.AccountId = &v + return s +} + +// SetJobId sets the JobId field's value. +func (s *DescribeJobInput) SetJobId(v string) *DescribeJobInput { + s.JobId = &v + return s +} + +func (s *DescribeJobInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +type DescribeJobOutput struct { + _ struct{} `type:"structure"` + + // Contains the configuration parameters and status for the job specified in + // the Describe Job request. + Job *JobDescriptor `type:"structure"` +} + +// String returns the string representation +func (s DescribeJobOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeJobOutput) GoString() string { + return s.String() +} + +// SetJob sets the Job field's value. +func (s *DescribeJobOutput) SetJob(v *JobDescriptor) *DescribeJobOutput { + s.Job = v + return s +} + +type GetAccessPointInput struct { + _ struct{} `locationName:"GetAccessPointRequest" type:"structure"` + + // The account ID for the account that owns the specified access point. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The name of the access point whose configuration information you want to + // retrieve. + // + // For Amazon S3 on Outposts specify the ARN of the access point accessed in + // the format arn:aws:s3-outposts:::outpost//accesspoint/. + // For example, to access the access point reports-ap through outpost my-outpost + // owned by account 123456789012 in Region us-west-2, use the URL encoding of + // arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. + // The value must be URL encoded. + // + // Name is a required field + Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetAccessPointInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetAccessPointInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetAccessPointInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAccessPointInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *GetAccessPointInput) SetAccountId(v string) *GetAccessPointInput { + s.AccountId = &v + return s +} + +// SetName sets the Name field's value. +func (s *GetAccessPointInput) SetName(v string) *GetAccessPointInput { + s.Name = &v + return s +} + +func (s *GetAccessPointInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +func (s *GetAccessPointInput) getEndpointARN() (arn.Resource, error) { + if s.Name == nil { + return nil, fmt.Errorf("member Name is nil") + } + return parseEndpointARN(*s.Name) +} + +func (s *GetAccessPointInput) hasEndpointARN() bool { + if s.Name == nil { + return false + } + return arn.IsARN(*s.Name) +} + +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetAccessPointInput) updateArnableField(v string) error { + if s.Name == nil { + return fmt.Errorf("member Name is nil") + } + s.Name = aws.String(v) + return nil +} + +func (s *GetAccessPointInput) updateAccountID(accountId string) error { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + } else if *s.AccountId != accountId { + return fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil +} + +type GetAccessPointOutput struct { + _ struct{} `type:"structure"` + + // The name of the bucket associated with the specified access point. + Bucket *string `min:"3" type:"string"` + + // The date and time when the specified access point was created. + CreationDate *time.Time `type:"timestamp"` + + // The name of the specified access point. + Name *string `min:"3" type:"string"` + + // Indicates whether this access point allows access from the public internet. + // If VpcConfiguration is specified for this access point, then NetworkOrigin + // is VPC, and the access point doesn't allow access from the public internet. + // Otherwise, NetworkOrigin is Internet, and the access point allows access + // from the public internet, subject to the access point and bucket access policies. + // + // This will always be true for an Amazon S3 on Outposts access point + NetworkOrigin *string `type:"string" enum:"NetworkOrigin"` + + // The PublicAccessBlock configuration that you want to apply to this Amazon + // S3 bucket. You can enable the configuration options in any combination. For + // more information about when Amazon S3 considers a bucket or object public, + // see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) + // in the Amazon Simple Storage Service Developer Guide. + // + // This is not supported for Amazon S3 on Outposts. + PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"` + + // Contains the virtual private cloud (VPC) configuration for the specified + // access point. + VpcConfiguration *VpcConfiguration `type:"structure"` +} + +// String returns the string representation +func (s GetAccessPointOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetAccessPointOutput) GoString() string { + return s.String() +} + +// SetBucket sets the Bucket field's value. +func (s *GetAccessPointOutput) SetBucket(v string) *GetAccessPointOutput { + s.Bucket = &v + return s +} + +// SetCreationDate sets the CreationDate field's value. +func (s *GetAccessPointOutput) SetCreationDate(v time.Time) *GetAccessPointOutput { + s.CreationDate = &v + return s +} + +// SetName sets the Name field's value. +func (s *GetAccessPointOutput) SetName(v string) *GetAccessPointOutput { + s.Name = &v + return s +} + +// SetNetworkOrigin sets the NetworkOrigin field's value. +func (s *GetAccessPointOutput) SetNetworkOrigin(v string) *GetAccessPointOutput { + s.NetworkOrigin = &v + return s +} + +// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value. +func (s *GetAccessPointOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetAccessPointOutput { + s.PublicAccessBlockConfiguration = v + return s +} + +// SetVpcConfiguration sets the VpcConfiguration field's value. +func (s *GetAccessPointOutput) SetVpcConfiguration(v *VpcConfiguration) *GetAccessPointOutput { + s.VpcConfiguration = v + return s +} + +type GetAccessPointPolicyInput struct { + _ struct{} `locationName:"GetAccessPointPolicyRequest" type:"structure"` + + // The account ID for the account that owns the specified access point. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The name of the access point whose policy you want to retrieve. + // + // For Amazon S3 on Outposts specify the ARN of the access point accessed in + // the format arn:aws:s3-outposts:::outpost//accesspoint/. + // For example, to access the access point reports-ap through outpost my-outpost + // owned by account 123456789012 in Region us-west-2, use the URL encoding of + // arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. + // The value must be URL encoded. + // + // Name is a required field + Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation -func (s CreateAccessPointInput) String() string { +func (s GetAccessPointPolicyInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s CreateAccessPointInput) GoString() string { +func (s GetAccessPointPolicyInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *CreateAccessPointInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateAccessPointInput"} +func (s *GetAccessPointPolicyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.Bucket == nil { - invalidParams.Add(request.NewErrParamRequired("Bucket")) - } - if s.Bucket != nil && len(*s.Bucket) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) - } if s.Name == nil { invalidParams.Add(request.NewErrParamRequired("Name")) } if s.Name != nil && len(*s.Name) < 3 { invalidParams.Add(request.NewErrParamMinLen("Name", 3)) } - if s.VpcConfiguration != nil { - if err := s.VpcConfiguration.Validate(); err != nil { - invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams)) - } - } if invalidParams.Len() > 0 { return invalidParams @@ -1934,175 +5324,281 @@ func (s *CreateAccessPointInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *CreateAccessPointInput) SetAccountId(v string) *CreateAccessPointInput { +func (s *GetAccessPointPolicyInput) SetAccountId(v string) *GetAccessPointPolicyInput { s.AccountId = &v return s } -// SetBucket sets the Bucket field's value. -func (s *CreateAccessPointInput) SetBucket(v string) *CreateAccessPointInput { - s.Bucket = &v +// SetName sets the Name field's value. +func (s *GetAccessPointPolicyInput) SetName(v string) *GetAccessPointPolicyInput { + s.Name = &v + return s +} + +func (s *GetAccessPointPolicyInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +type GetAccessPointPolicyOutput struct { + _ struct{} `type:"structure"` + + // The access point policy associated with the specified access point. + Policy *string `type:"string"` +} + +// String returns the string representation +func (s GetAccessPointPolicyOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetAccessPointPolicyOutput) GoString() string { + return s.String() +} + +// SetPolicy sets the Policy field's value. +func (s *GetAccessPointPolicyOutput) SetPolicy(v string) *GetAccessPointPolicyOutput { + s.Policy = &v + return s +} + +type GetAccessPointPolicyStatusInput struct { + _ struct{} `locationName:"GetAccessPointPolicyStatusRequest" type:"structure"` + + // The account ID for the account that owns the specified access point. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The name of the access point whose policy status you want to retrieve. + // + // Name is a required field + Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetAccessPointPolicyStatusInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetAccessPointPolicyStatusInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetAccessPointPolicyStatusInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyStatusInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *GetAccessPointPolicyStatusInput) SetAccountId(v string) *GetAccessPointPolicyStatusInput { + s.AccountId = &v return s } // SetName sets the Name field's value. -func (s *CreateAccessPointInput) SetName(v string) *CreateAccessPointInput { +func (s *GetAccessPointPolicyStatusInput) SetName(v string) *GetAccessPointPolicyStatusInput { s.Name = &v return s } -// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value. -func (s *CreateAccessPointInput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *CreateAccessPointInput { - s.PublicAccessBlockConfiguration = v +func (s *GetAccessPointPolicyStatusInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +type GetAccessPointPolicyStatusOutput struct { + _ struct{} `type:"structure"` + + // Indicates the current policy status of the specified access point. + PolicyStatus *PolicyStatus `type:"structure"` +} + +// String returns the string representation +func (s GetAccessPointPolicyStatusOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetAccessPointPolicyStatusOutput) GoString() string { + return s.String() +} + +// SetPolicyStatus sets the PolicyStatus field's value. +func (s *GetAccessPointPolicyStatusOutput) SetPolicyStatus(v *PolicyStatus) *GetAccessPointPolicyStatusOutput { + s.PolicyStatus = v return s } -// SetVpcConfiguration sets the VpcConfiguration field's value. -func (s *CreateAccessPointInput) SetVpcConfiguration(v *VpcConfiguration) *CreateAccessPointInput { - s.VpcConfiguration = v +type GetBucketInput struct { + _ struct{} `locationName:"GetBucketRequest" type:"structure"` + + // The AWS account ID of the Outposts bucket. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + + // The ARN of the bucket. + // + // For Amazon S3 on Outposts specify the ARN of the bucket accessed in the format + // arn:aws:s3-outposts:::outpost//bucket/. + // For example, to access the bucket reports through outpost my-outpost owned + // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. + // The value must be URL encoded. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetBucketInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetBucketInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetBucketInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetBucketInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccountId sets the AccountId field's value. +func (s *GetBucketInput) SetAccountId(v string) *GetBucketInput { + s.AccountId = &v return s } -func (s *CreateAccessPointInput) hostLabels() map[string]string { +// SetBucket sets the Bucket field's value. +func (s *GetBucketInput) SetBucket(v string) *GetBucketInput { + s.Bucket = &v + return s +} + +func (s *GetBucketInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -type CreateAccessPointOutput struct { - _ struct{} `type:"structure"` +func (s *GetBucketInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) +} + +func (s *GetBucketInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) } -// String returns the string representation -func (s CreateAccessPointOutput) String() string { - return awsutil.Prettify(s) +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetBucketInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil } -// GoString returns the string representation -func (s CreateAccessPointOutput) GoString() string { - return s.String() +func (s *GetBucketInput) updateAccountID(accountId string) error { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + } else if *s.AccountId != accountId { + return fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil } -type CreateJobInput struct { - _ struct{} `locationName:"CreateJobRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` +type GetBucketLifecycleConfigurationInput struct { + _ struct{} `locationName:"GetBucketLifecycleConfigurationRequest" type:"structure"` + // The AWS account ID of the Outposts bucket. + // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // An idempotency token to ensure that you don't accidentally submit the same - // request twice. You can use any string up to the maximum length. - ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"` - - // Indicates whether confirmation is required before Amazon S3 runs the job. - // Confirmation is only required for jobs created through the Amazon S3 console. - ConfirmationRequired *bool `type:"boolean"` - - // A description for this job. You can use any string within the permitted length. - // Descriptions don't need to be unique and can be used for multiple jobs. - Description *string `min:"1" type:"string"` - - // Configuration parameters for the manifest. - // - // Manifest is a required field - Manifest *JobManifest `type:"structure" required:"true"` - - // The operation that you want this job to perform on each object listed in - // the manifest. For more information about the available operations, see Available - // Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-operations.html) - // in the Amazon Simple Storage Service Developer Guide. - // - // Operation is a required field - Operation *JobOperation `type:"structure" required:"true"` - - // The numerical priority for this job. Higher numbers indicate higher priority. - // - // Priority is a required field - Priority *int64 `type:"integer" required:"true"` - - // Configuration parameters for the optional job-completion report. + // The Amazon Resource Name (ARN) of the bucket. // - // Report is a required field - Report *JobReport `type:"structure" required:"true"` - - // The Amazon Resource Name (ARN) for the AWS Identity and Access Management - // (IAM) role that Batch Operations will use to execute this job's operation - // on each object in the manifest. + // For Amazon S3 on Outposts specify the ARN of the bucket accessed in the format + // arn:aws:s3-outposts:::outpost//bucket/. + // For example, to access the bucket reports through outpost my-outpost owned + // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. + // The value must be URL encoded. // - // RoleArn is a required field - RoleArn *string `min:"1" type:"string" required:"true"` - - // A set of tags to associate with the Amazon S3 Batch Operations job. This - // is an optional parameter. - Tags []*S3Tag `type:"list"` + // Bucket is a required field + Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation -func (s CreateJobInput) String() string { +func (s GetBucketLifecycleConfigurationInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s CreateJobInput) GoString() string { +func (s GetBucketLifecycleConfigurationInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *CreateJobInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateJobInput"} +func (s *GetBucketLifecycleConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetBucketLifecycleConfigurationInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1)) - } - if s.Description != nil && len(*s.Description) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Description", 1)) - } - if s.Manifest == nil { - invalidParams.Add(request.NewErrParamRequired("Manifest")) - } - if s.Operation == nil { - invalidParams.Add(request.NewErrParamRequired("Operation")) - } - if s.Priority == nil { - invalidParams.Add(request.NewErrParamRequired("Priority")) - } - if s.Report == nil { - invalidParams.Add(request.NewErrParamRequired("Report")) - } - if s.RoleArn == nil { - invalidParams.Add(request.NewErrParamRequired("RoleArn")) - } - if s.RoleArn != nil && len(*s.RoleArn) < 1 { - invalidParams.Add(request.NewErrParamMinLen("RoleArn", 1)) - } - if s.Manifest != nil { - if err := s.Manifest.Validate(); err != nil { - invalidParams.AddNested("Manifest", err.(request.ErrInvalidParams)) - } - } - if s.Operation != nil { - if err := s.Operation.Validate(); err != nil { - invalidParams.AddNested("Operation", err.(request.ErrInvalidParams)) - } - } - if s.Report != nil { - if err := s.Report.Validate(); err != nil { - invalidParams.AddNested("Report", err.(request.ErrInvalidParams)) - } + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) } - 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 s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) } if invalidParams.Len() > 0 { @@ -2112,133 +5608,164 @@ func (s *CreateJobInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *CreateJobInput) SetAccountId(v string) *CreateJobInput { +func (s *GetBucketLifecycleConfigurationInput) SetAccountId(v string) *GetBucketLifecycleConfigurationInput { s.AccountId = &v return s } -// SetClientRequestToken sets the ClientRequestToken field's value. -func (s *CreateJobInput) SetClientRequestToken(v string) *CreateJobInput { - s.ClientRequestToken = &v +// SetBucket sets the Bucket field's value. +func (s *GetBucketLifecycleConfigurationInput) SetBucket(v string) *GetBucketLifecycleConfigurationInput { + s.Bucket = &v return s } -// SetConfirmationRequired sets the ConfirmationRequired field's value. -func (s *CreateJobInput) SetConfirmationRequired(v bool) *CreateJobInput { - s.ConfirmationRequired = &v - return s +func (s *GetBucketLifecycleConfigurationInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } } -// SetDescription sets the Description field's value. -func (s *CreateJobInput) SetDescription(v string) *CreateJobInput { - s.Description = &v - return s +func (s *GetBucketLifecycleConfigurationInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) } -// SetManifest sets the Manifest field's value. -func (s *CreateJobInput) SetManifest(v *JobManifest) *CreateJobInput { - s.Manifest = v - return s +func (s *GetBucketLifecycleConfigurationInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) } -// SetOperation sets the Operation field's value. -func (s *CreateJobInput) SetOperation(v *JobOperation) *CreateJobInput { - s.Operation = v - return s +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetBucketLifecycleConfigurationInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil } -// SetPriority sets the Priority field's value. -func (s *CreateJobInput) SetPriority(v int64) *CreateJobInput { - s.Priority = &v - return s +func (s *GetBucketLifecycleConfigurationInput) updateAccountID(accountId string) error { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + } else if *s.AccountId != accountId { + return fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil } -// SetReport sets the Report field's value. -func (s *CreateJobInput) SetReport(v *JobReport) *CreateJobInput { - s.Report = v - return s +type GetBucketLifecycleConfigurationOutput struct { + _ struct{} `type:"structure"` + + // Container for the lifecycle rule of the Outposts bucket. + Rules []*LifecycleRule `locationNameList:"Rule" type:"list"` } -// SetRoleArn sets the RoleArn field's value. -func (s *CreateJobInput) SetRoleArn(v string) *CreateJobInput { - s.RoleArn = &v - return s +// String returns the string representation +func (s GetBucketLifecycleConfigurationOutput) String() string { + return awsutil.Prettify(s) } -// SetTags sets the Tags field's value. -func (s *CreateJobInput) SetTags(v []*S3Tag) *CreateJobInput { - s.Tags = v - return s +// GoString returns the string representation +func (s GetBucketLifecycleConfigurationOutput) GoString() string { + return s.String() } -func (s *CreateJobInput) hostLabels() map[string]string { - return map[string]string{ - "AccountId": aws.StringValue(s.AccountId), - } +// SetRules sets the Rules field's value. +func (s *GetBucketLifecycleConfigurationOutput) SetRules(v []*LifecycleRule) *GetBucketLifecycleConfigurationOutput { + s.Rules = v + return s } -type CreateJobOutput struct { +type GetBucketOutput struct { _ struct{} `type:"structure"` - // The ID for this job. Amazon S3 generates this ID automatically and returns - // it after a successful Create Job request. - JobId *string `min:"5" type:"string"` + // The Outposts bucket requested. + Bucket *string `min:"3" type:"string"` + + // The creation date of the Outposts bucket. + CreationDate *time.Time `type:"timestamp"` + + PublicAccessBlockEnabled *bool `type:"boolean"` } // String returns the string representation -func (s CreateJobOutput) String() string { +func (s GetBucketOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s CreateJobOutput) GoString() string { +func (s GetBucketOutput) GoString() string { return s.String() } -// SetJobId sets the JobId field's value. -func (s *CreateJobOutput) SetJobId(v string) *CreateJobOutput { - s.JobId = &v +// SetBucket sets the Bucket field's value. +func (s *GetBucketOutput) SetBucket(v string) *GetBucketOutput { + s.Bucket = &v return s } -type DeleteAccessPointInput struct { - _ struct{} `locationName:"DeleteAccessPointRequest" type:"structure"` +// SetCreationDate sets the CreationDate field's value. +func (s *GetBucketOutput) SetCreationDate(v time.Time) *GetBucketOutput { + s.CreationDate = &v + return s +} - // The account ID for the account that owns the specified access point. +// SetPublicAccessBlockEnabled sets the PublicAccessBlockEnabled field's value. +func (s *GetBucketOutput) SetPublicAccessBlockEnabled(v bool) *GetBucketOutput { + s.PublicAccessBlockEnabled = &v + return s +} + +type GetBucketPolicyInput struct { + _ struct{} `locationName:"GetBucketPolicyRequest" type:"structure"` + + // The AWS account ID of the Outposts bucket. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The name of the access point you want to delete. + // The ARN of the bucket. // - // Name is a required field - Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + // For Amazon S3 on Outposts specify the ARN of the bucket accessed in the format + // arn:aws:s3-outposts:::outpost//bucket/. + // For example, to access the bucket reports through outpost my-outpost owned + // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. + // The value must be URL encoded. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation -func (s DeleteAccessPointInput) String() string { +func (s GetBucketPolicyInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DeleteAccessPointInput) GoString() string { +func (s GetBucketPolicyInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteAccessPointInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointInput"} +func (s *GetBucketPolicyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetBucketPolicyInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) } if invalidParams.Len() > 0 { @@ -2248,75 +5775,124 @@ func (s *DeleteAccessPointInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *DeleteAccessPointInput) SetAccountId(v string) *DeleteAccessPointInput { +func (s *GetBucketPolicyInput) SetAccountId(v string) *GetBucketPolicyInput { s.AccountId = &v return s } -// SetName sets the Name field's value. -func (s *DeleteAccessPointInput) SetName(v string) *DeleteAccessPointInput { - s.Name = &v +// SetBucket sets the Bucket field's value. +func (s *GetBucketPolicyInput) SetBucket(v string) *GetBucketPolicyInput { + s.Bucket = &v return s } -func (s *DeleteAccessPointInput) hostLabels() map[string]string { +func (s *GetBucketPolicyInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -type DeleteAccessPointOutput struct { +func (s *GetBucketPolicyInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) +} + +func (s *GetBucketPolicyInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) +} + +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetBucketPolicyInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + +func (s *GetBucketPolicyInput) updateAccountID(accountId string) error { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + } else if *s.AccountId != accountId { + return fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil +} + +type GetBucketPolicyOutput struct { _ struct{} `type:"structure"` + + // The policy of the Outposts bucket. + Policy *string `type:"string"` } // String returns the string representation -func (s DeleteAccessPointOutput) String() string { +func (s GetBucketPolicyOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DeleteAccessPointOutput) GoString() string { +func (s GetBucketPolicyOutput) GoString() string { return s.String() } -type DeleteAccessPointPolicyInput struct { - _ struct{} `locationName:"DeleteAccessPointPolicyRequest" type:"structure"` +// SetPolicy sets the Policy field's value. +func (s *GetBucketPolicyOutput) SetPolicy(v string) *GetBucketPolicyOutput { + s.Policy = &v + return s +} - // The account ID for the account that owns the specified access point. +type GetBucketTaggingInput struct { + _ struct{} `locationName:"GetBucketTaggingRequest" type:"structure"` + + // The AWS account ID of the Outposts bucket. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The name of the access point whose policy you want to delete. + // The ARN of the bucket. // - // Name is a required field - Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + // For Amazon S3 on Outposts specify the ARN of the bucket accessed in the format + // arn:aws:s3-outposts:::outpost//bucket/. + // For example, to access the bucket reports through outpost my-outpost owned + // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. + // The value must be URL encoded. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` } // String returns the string representation -func (s DeleteAccessPointPolicyInput) String() string { +func (s GetBucketTaggingInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DeleteAccessPointPolicyInput) GoString() string { +func (s GetBucketTaggingInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteAccessPointPolicyInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteAccessPointPolicyInput"} +func (s *GetBucketTaggingInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetBucketTaggingInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) } if invalidParams.Len() > 0 { @@ -2326,64 +5902,109 @@ func (s *DeleteAccessPointPolicyInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *DeleteAccessPointPolicyInput) SetAccountId(v string) *DeleteAccessPointPolicyInput { +func (s *GetBucketTaggingInput) SetAccountId(v string) *GetBucketTaggingInput { s.AccountId = &v return s } -// SetName sets the Name field's value. -func (s *DeleteAccessPointPolicyInput) SetName(v string) *DeleteAccessPointPolicyInput { - s.Name = &v +// SetBucket sets the Bucket field's value. +func (s *GetBucketTaggingInput) SetBucket(v string) *GetBucketTaggingInput { + s.Bucket = &v return s } -func (s *DeleteAccessPointPolicyInput) hostLabels() map[string]string { +func (s *GetBucketTaggingInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -type DeleteAccessPointPolicyOutput struct { +func (s *GetBucketTaggingInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) +} + +func (s *GetBucketTaggingInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) +} + +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *GetBucketTaggingInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + +func (s *GetBucketTaggingInput) updateAccountID(accountId string) error { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + } else if *s.AccountId != accountId { + return fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil +} + +type GetBucketTaggingOutput struct { _ struct{} `type:"structure"` + + // The tags set of the Outposts bucket. + // + // TagSet is a required field + TagSet []*S3Tag `type:"list" required:"true"` } // String returns the string representation -func (s DeleteAccessPointPolicyOutput) String() string { +func (s GetBucketTaggingOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DeleteAccessPointPolicyOutput) GoString() string { +func (s GetBucketTaggingOutput) GoString() string { return s.String() } -type DeleteJobTaggingInput struct { - _ struct{} `locationName:"DeleteJobTaggingRequest" type:"structure"` +// SetTagSet sets the TagSet field's value. +func (s *GetBucketTaggingOutput) SetTagSet(v []*S3Tag) *GetBucketTaggingOutput { + s.TagSet = v + return s +} - // The AWS account ID associated with the Amazon S3 Batch Operations job. +type GetJobTaggingInput struct { + _ struct{} `locationName:"GetJobTaggingRequest" type:"structure"` + + // The AWS account ID associated with the S3 Batch Operations job. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The ID for the Amazon S3 Batch Operations job whose tags you want to delete. + // The ID for the S3 Batch Operations job whose tags you want to retrieve. // // JobId is a required field JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"` } // String returns the string representation -func (s DeleteJobTaggingInput) String() string { +func (s GetJobTaggingInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DeleteJobTaggingInput) GoString() string { +func (s GetJobTaggingInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeleteJobTaggingInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeleteJobTaggingInput"} +func (s *GetJobTaggingInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetJobTaggingInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } @@ -2404,60 +6025,69 @@ func (s *DeleteJobTaggingInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *DeleteJobTaggingInput) SetAccountId(v string) *DeleteJobTaggingInput { +func (s *GetJobTaggingInput) SetAccountId(v string) *GetJobTaggingInput { s.AccountId = &v return s } // SetJobId sets the JobId field's value. -func (s *DeleteJobTaggingInput) SetJobId(v string) *DeleteJobTaggingInput { +func (s *GetJobTaggingInput) SetJobId(v string) *GetJobTaggingInput { s.JobId = &v return s } -func (s *DeleteJobTaggingInput) hostLabels() map[string]string { +func (s *GetJobTaggingInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -type DeleteJobTaggingOutput struct { +type GetJobTaggingOutput struct { _ struct{} `type:"structure"` + + // The set of tags associated with the S3 Batch Operations job. + Tags []*S3Tag `type:"list"` } // String returns the string representation -func (s DeleteJobTaggingOutput) String() string { +func (s GetJobTaggingOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DeleteJobTaggingOutput) GoString() string { +func (s GetJobTaggingOutput) GoString() string { return s.String() } -type DeletePublicAccessBlockInput struct { - _ struct{} `locationName:"DeletePublicAccessBlockRequest" type:"structure"` +// SetTags sets the Tags field's value. +func (s *GetJobTaggingOutput) SetTags(v []*S3Tag) *GetJobTaggingOutput { + s.Tags = v + return s +} - // The account ID for the Amazon Web Services account whose PublicAccessBlock - // configuration you want to remove. +type GetPublicAccessBlockInput struct { + _ struct{} `locationName:"GetPublicAccessBlockRequest" type:"structure"` + + // The account ID for the AWS account whose PublicAccessBlock configuration + // you want to retrieve. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` } // String returns the string representation -func (s DeletePublicAccessBlockInput) String() string { +func (s GetPublicAccessBlockInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DeletePublicAccessBlockInput) GoString() string { +func (s GetPublicAccessBlockInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *DeletePublicAccessBlockInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DeletePublicAccessBlockInput"} +func (s *GetPublicAccessBlockInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetPublicAccessBlockInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } @@ -2472,297 +6102,455 @@ func (s *DeletePublicAccessBlockInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *DeletePublicAccessBlockInput) SetAccountId(v string) *DeletePublicAccessBlockInput { +func (s *GetPublicAccessBlockInput) SetAccountId(v string) *GetPublicAccessBlockInput { s.AccountId = &v return s } -func (s *DeletePublicAccessBlockInput) hostLabels() map[string]string { +func (s *GetPublicAccessBlockInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -type DeletePublicAccessBlockOutput struct { - _ struct{} `type:"structure"` +type GetPublicAccessBlockOutput struct { + _ struct{} `type:"structure" payload:"PublicAccessBlockConfiguration"` + + // The PublicAccessBlock configuration currently in effect for this AWS account. + PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"` } // String returns the string representation -func (s DeletePublicAccessBlockOutput) String() string { +func (s GetPublicAccessBlockOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DeletePublicAccessBlockOutput) GoString() string { +func (s GetPublicAccessBlockOutput) GoString() string { return s.String() } -type DescribeJobInput struct { - _ struct{} `locationName:"DescribeJobRequest" type:"structure"` +// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value. +func (s *GetPublicAccessBlockOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetPublicAccessBlockOutput { + s.PublicAccessBlockConfiguration = v + return s +} - // AccountId is a required field - AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` +// A container element for the job configuration and status information returned +// by a Describe Job request. +type JobDescriptor struct { + _ struct{} `type:"structure"` - // The ID for the job whose information you want to retrieve. - // - // JobId is a required field - JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"` + // Indicates whether confirmation is required before Amazon S3 begins running + // the specified job. Confirmation is required only for jobs created through + // the Amazon S3 console. + ConfirmationRequired *bool `type:"boolean"` + + // A timestamp indicating when this job was created. + CreationTime *time.Time `type:"timestamp"` + + // The description for this job, if one was provided in this job's Create Job + // request. + Description *string `min:"1" type:"string"` + + // If the specified job failed, this field contains information describing the + // failure. + FailureReasons []*JobFailure `type:"list"` + + // The Amazon Resource Name (ARN) for this job. + JobArn *string `min:"1" type:"string"` + + // The ID for the specified job. + JobId *string `min:"5" type:"string"` + + // The configuration information for the specified job's manifest object. + Manifest *JobManifest `type:"structure"` + + // The operation that the specified job is configured to run on the objects + // listed in the manifest. + Operation *JobOperation `type:"structure"` + + // The priority of the specified job. + Priority *int64 `type:"integer"` + + // Describes the total number of tasks that the specified job has run, the number + // of tasks that succeeded, and the number of tasks that failed. + ProgressSummary *JobProgressSummary `type:"structure"` + + // Contains the configuration information for the job-completion report if you + // requested one in the Create Job request. + Report *JobReport `type:"structure"` + + // The Amazon Resource Name (ARN) for the AWS Identity and Access Management + // (IAM) role assigned to run the tasks for this job. + RoleArn *string `min:"1" type:"string"` + + // The current status of the specified job. + Status *string `type:"string" enum:"JobStatus"` + + // The reason for updating the job. + StatusUpdateReason *string `min:"1" type:"string"` + + // The reason why the specified job was suspended. A job is only suspended if + // you create it through the Amazon S3 console. When you create the job, it + // enters the Suspended state to await confirmation before running. After you + // confirm the job, it automatically exits the Suspended state. + SuspendedCause *string `min:"1" type:"string"` + + // The timestamp when this job was suspended, if it has been suspended. + SuspendedDate *time.Time `type:"timestamp"` + + // A timestamp indicating when this job terminated. A job's termination date + // is the date and time when it succeeded, failed, or was canceled. + TerminationDate *time.Time `type:"timestamp"` } // String returns the string representation -func (s DescribeJobInput) String() string { +func (s JobDescriptor) String() string { return awsutil.Prettify(s) } -// GoString returns the string representation -func (s DescribeJobInput) GoString() string { - return s.String() +// GoString returns the string representation +func (s JobDescriptor) GoString() string { + return s.String() +} + +// SetConfirmationRequired sets the ConfirmationRequired field's value. +func (s *JobDescriptor) SetConfirmationRequired(v bool) *JobDescriptor { + s.ConfirmationRequired = &v + return s +} + +// SetCreationTime sets the CreationTime field's value. +func (s *JobDescriptor) SetCreationTime(v time.Time) *JobDescriptor { + s.CreationTime = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *JobDescriptor) SetDescription(v string) *JobDescriptor { + s.Description = &v + return s +} + +// SetFailureReasons sets the FailureReasons field's value. +func (s *JobDescriptor) SetFailureReasons(v []*JobFailure) *JobDescriptor { + s.FailureReasons = v + return s +} + +// SetJobArn sets the JobArn field's value. +func (s *JobDescriptor) SetJobArn(v string) *JobDescriptor { + s.JobArn = &v + return s +} + +// SetJobId sets the JobId field's value. +func (s *JobDescriptor) SetJobId(v string) *JobDescriptor { + s.JobId = &v + return s +} + +// SetManifest sets the Manifest field's value. +func (s *JobDescriptor) SetManifest(v *JobManifest) *JobDescriptor { + s.Manifest = v + return s +} + +// SetOperation sets the Operation field's value. +func (s *JobDescriptor) SetOperation(v *JobOperation) *JobDescriptor { + s.Operation = v + return s +} + +// SetPriority sets the Priority field's value. +func (s *JobDescriptor) SetPriority(v int64) *JobDescriptor { + s.Priority = &v + return s +} + +// SetProgressSummary sets the ProgressSummary field's value. +func (s *JobDescriptor) SetProgressSummary(v *JobProgressSummary) *JobDescriptor { + s.ProgressSummary = v + return s +} + +// SetReport sets the Report field's value. +func (s *JobDescriptor) SetReport(v *JobReport) *JobDescriptor { + s.Report = v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *JobDescriptor) SetRoleArn(v string) *JobDescriptor { + s.RoleArn = &v + return s } -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeJobInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeJobInput"} - if s.AccountId == nil { - invalidParams.Add(request.NewErrParamRequired("AccountId")) - } - if s.AccountId != nil && len(*s.AccountId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) - } - if s.JobId == nil { - invalidParams.Add(request.NewErrParamRequired("JobId")) - } - if s.JobId != nil && len(*s.JobId) < 5 { - invalidParams.Add(request.NewErrParamMinLen("JobId", 5)) - } +// SetStatus sets the Status field's value. +func (s *JobDescriptor) SetStatus(v string) *JobDescriptor { + s.Status = &v + return s +} - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetStatusUpdateReason sets the StatusUpdateReason field's value. +func (s *JobDescriptor) SetStatusUpdateReason(v string) *JobDescriptor { + s.StatusUpdateReason = &v + return s } -// SetAccountId sets the AccountId field's value. -func (s *DescribeJobInput) SetAccountId(v string) *DescribeJobInput { - s.AccountId = &v +// SetSuspendedCause sets the SuspendedCause field's value. +func (s *JobDescriptor) SetSuspendedCause(v string) *JobDescriptor { + s.SuspendedCause = &v return s } -// SetJobId sets the JobId field's value. -func (s *DescribeJobInput) SetJobId(v string) *DescribeJobInput { - s.JobId = &v +// SetSuspendedDate sets the SuspendedDate field's value. +func (s *JobDescriptor) SetSuspendedDate(v time.Time) *JobDescriptor { + s.SuspendedDate = &v return s } -func (s *DescribeJobInput) hostLabels() map[string]string { - return map[string]string{ - "AccountId": aws.StringValue(s.AccountId), - } +// SetTerminationDate sets the TerminationDate field's value. +func (s *JobDescriptor) SetTerminationDate(v time.Time) *JobDescriptor { + s.TerminationDate = &v + return s } -type DescribeJobOutput struct { +// If this job failed, this element indicates why the job failed. +type JobFailure struct { _ struct{} `type:"structure"` - // Contains the configuration parameters and status for the job specified in - // the Describe Job request. - Job *JobDescriptor `type:"structure"` + // The failure code, if any, for the specified job. + FailureCode *string `min:"1" type:"string"` + + // The failure reason, if any, for the specified job. + FailureReason *string `min:"1" type:"string"` } // String returns the string representation -func (s DescribeJobOutput) String() string { +func (s JobFailure) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s DescribeJobOutput) GoString() string { +func (s JobFailure) GoString() string { return s.String() } -// SetJob sets the Job field's value. -func (s *DescribeJobOutput) SetJob(v *JobDescriptor) *DescribeJobOutput { - s.Job = v +// SetFailureCode sets the FailureCode field's value. +func (s *JobFailure) SetFailureCode(v string) *JobFailure { + s.FailureCode = &v return s } -type GetAccessPointInput struct { - _ struct{} `locationName:"GetAccessPointRequest" type:"structure"` +// SetFailureReason sets the FailureReason field's value. +func (s *JobFailure) SetFailureReason(v string) *JobFailure { + s.FailureReason = &v + return s +} - // The account ID for the account that owns the specified access point. - // - // AccountId is a required field - AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` +// Contains the configuration and status information for a single job retrieved +// as part of a job list. +type JobListDescriptor struct { + _ struct{} `type:"structure"` - // The name of the access point whose configuration information you want to - // retrieve. - // - // Name is a required field - Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + // A timestamp indicating when the specified job was created. + CreationTime *time.Time `type:"timestamp"` + + // The user-specified description that was included in the specified job's Create + // Job request. + Description *string `min:"1" type:"string"` + + // The ID for the specified job. + JobId *string `min:"5" type:"string"` + + // The operation that the specified job is configured to run on each object + // listed in the manifest. + Operation *string `type:"string" enum:"OperationName"` + + // The current priority for the specified job. + Priority *int64 `type:"integer"` + + // Describes the total number of tasks that the specified job has run, the number + // of tasks that succeeded, and the number of tasks that failed. + ProgressSummary *JobProgressSummary `type:"structure"` + + // The specified job's current status. + Status *string `type:"string" enum:"JobStatus"` + + // A timestamp indicating when the specified job terminated. A job's termination + // date is the date and time when it succeeded, failed, or was canceled. + TerminationDate *time.Time `type:"timestamp"` } // String returns the string representation -func (s GetAccessPointInput) String() string { +func (s JobListDescriptor) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetAccessPointInput) GoString() string { +func (s JobListDescriptor) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *GetAccessPointInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetAccessPointInput"} - if s.AccountId == nil { - invalidParams.Add(request.NewErrParamRequired("AccountId")) - } - if s.AccountId != nil && len(*s.AccountId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) - } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetCreationTime sets the CreationTime field's value. +func (s *JobListDescriptor) SetCreationTime(v time.Time) *JobListDescriptor { + s.CreationTime = &v + return s } -// SetAccountId sets the AccountId field's value. -func (s *GetAccessPointInput) SetAccountId(v string) *GetAccessPointInput { - s.AccountId = &v +// SetDescription sets the Description field's value. +func (s *JobListDescriptor) SetDescription(v string) *JobListDescriptor { + s.Description = &v return s } -// SetName sets the Name field's value. -func (s *GetAccessPointInput) SetName(v string) *GetAccessPointInput { - s.Name = &v +// SetJobId sets the JobId field's value. +func (s *JobListDescriptor) SetJobId(v string) *JobListDescriptor { + s.JobId = &v return s } -func (s *GetAccessPointInput) hostLabels() map[string]string { - return map[string]string{ - "AccountId": aws.StringValue(s.AccountId), - } +// SetOperation sets the Operation field's value. +func (s *JobListDescriptor) SetOperation(v string) *JobListDescriptor { + s.Operation = &v + return s } -type GetAccessPointOutput struct { - _ struct{} `type:"structure"` +// SetPriority sets the Priority field's value. +func (s *JobListDescriptor) SetPriority(v int64) *JobListDescriptor { + s.Priority = &v + return s +} - // The name of the bucket associated with the specified access point. - Bucket *string `min:"3" type:"string"` +// SetProgressSummary sets the ProgressSummary field's value. +func (s *JobListDescriptor) SetProgressSummary(v *JobProgressSummary) *JobListDescriptor { + s.ProgressSummary = v + return s +} - // The date and time when the specified access point was created. - CreationDate *time.Time `type:"timestamp"` +// SetStatus sets the Status field's value. +func (s *JobListDescriptor) SetStatus(v string) *JobListDescriptor { + s.Status = &v + return s +} - // The name of the specified access point. - Name *string `min:"3" type:"string"` +// SetTerminationDate sets the TerminationDate field's value. +func (s *JobListDescriptor) SetTerminationDate(v time.Time) *JobListDescriptor { + s.TerminationDate = &v + return s +} - // Indicates whether this access point allows access from the public internet. - // If VpcConfiguration is specified for this access point, then NetworkOrigin - // is VPC, and the access point doesn't allow access from the public internet. - // Otherwise, NetworkOrigin is Internet, and the access point allows access - // from the public internet, subject to the access point and bucket access policies. - NetworkOrigin *string `type:"string" enum:"NetworkOrigin"` +// Contains the configuration information for a job's manifest. +type JobManifest struct { + _ struct{} `type:"structure"` - // The PublicAccessBlock configuration that you want to apply to this Amazon - // S3 bucket. You can enable the configuration options in any combination. For - // more information about when Amazon S3 considers a bucket or object public, - // see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) - // in the Amazon Simple Storage Service Developer Guide. - PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"` + // Contains the information required to locate the specified job's manifest. + // + // Location is a required field + Location *JobManifestLocation `type:"structure" required:"true"` - // Contains the virtual private cloud (VPC) configuration for the specified - // access point. - VpcConfiguration *VpcConfiguration `type:"structure"` + // Describes the format of the specified job's manifest. If the manifest is + // in CSV format, also describes the columns contained within the manifest. + // + // Spec is a required field + Spec *JobManifestSpec `type:"structure" required:"true"` } // String returns the string representation -func (s GetAccessPointOutput) String() string { +func (s JobManifest) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetAccessPointOutput) GoString() string { +func (s JobManifest) GoString() string { return s.String() } -// SetBucket sets the Bucket field's value. -func (s *GetAccessPointOutput) SetBucket(v string) *GetAccessPointOutput { - s.Bucket = &v - return s -} - -// SetCreationDate sets the CreationDate field's value. -func (s *GetAccessPointOutput) SetCreationDate(v time.Time) *GetAccessPointOutput { - s.CreationDate = &v - return s -} - -// SetName sets the Name field's value. -func (s *GetAccessPointOutput) SetName(v string) *GetAccessPointOutput { - s.Name = &v - return s -} +// Validate inspects the fields of the type to determine if they are valid. +func (s *JobManifest) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "JobManifest"} + if s.Location == nil { + invalidParams.Add(request.NewErrParamRequired("Location")) + } + if s.Spec == nil { + invalidParams.Add(request.NewErrParamRequired("Spec")) + } + if s.Location != nil { + if err := s.Location.Validate(); err != nil { + invalidParams.AddNested("Location", err.(request.ErrInvalidParams)) + } + } + if s.Spec != nil { + if err := s.Spec.Validate(); err != nil { + invalidParams.AddNested("Spec", err.(request.ErrInvalidParams)) + } + } -// SetNetworkOrigin sets the NetworkOrigin field's value. -func (s *GetAccessPointOutput) SetNetworkOrigin(v string) *GetAccessPointOutput { - s.NetworkOrigin = &v - return s + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value. -func (s *GetAccessPointOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetAccessPointOutput { - s.PublicAccessBlockConfiguration = v +// SetLocation sets the Location field's value. +func (s *JobManifest) SetLocation(v *JobManifestLocation) *JobManifest { + s.Location = v return s } -// SetVpcConfiguration sets the VpcConfiguration field's value. -func (s *GetAccessPointOutput) SetVpcConfiguration(v *VpcConfiguration) *GetAccessPointOutput { - s.VpcConfiguration = v +// SetSpec sets the Spec field's value. +func (s *JobManifest) SetSpec(v *JobManifestSpec) *JobManifest { + s.Spec = v return s } -type GetAccessPointPolicyInput struct { - _ struct{} `locationName:"GetAccessPointPolicyRequest" type:"structure"` +// Contains the information required to locate a manifest object. +type JobManifestLocation struct { + _ struct{} `type:"structure"` - // The account ID for the account that owns the specified access point. + // The ETag for the specified manifest object. // - // AccountId is a required field - AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + // ETag is a required field + ETag *string `min:"1" type:"string" required:"true"` - // The name of the access point whose policy you want to retrieve. + // The Amazon Resource Name (ARN) for a manifest object. // - // Name is a required field - Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + // ObjectArn is a required field + ObjectArn *string `min:"1" type:"string" required:"true"` + + // The optional version ID to identify a specific version of the manifest object. + ObjectVersionId *string `min:"1" type:"string"` } // String returns the string representation -func (s GetAccessPointPolicyInput) String() string { +func (s JobManifestLocation) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetAccessPointPolicyInput) GoString() string { +func (s JobManifestLocation) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetAccessPointPolicyInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyInput"} - if s.AccountId == nil { - invalidParams.Add(request.NewErrParamRequired("AccountId")) +func (s *JobManifestLocation) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "JobManifestLocation"} + if s.ETag == nil { + invalidParams.Add(request.NewErrParamRequired("ETag")) } - if s.AccountId != nil && len(*s.AccountId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + if s.ETag != nil && len(*s.ETag) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ETag", 1)) } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) + if s.ObjectArn == nil { + invalidParams.Add(request.NewErrParamRequired("ObjectArn")) } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + if s.ObjectArn != nil && len(*s.ObjectArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ObjectArn", 1)) + } + if s.ObjectVersionId != nil && len(*s.ObjectVersionId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ObjectVersionId", 1)) } if invalidParams.Len() > 0 { @@ -2771,85 +6559,158 @@ func (s *GetAccessPointPolicyInput) Validate() error { return nil } -// SetAccountId sets the AccountId field's value. -func (s *GetAccessPointPolicyInput) SetAccountId(v string) *GetAccessPointPolicyInput { - s.AccountId = &v +// SetETag sets the ETag field's value. +func (s *JobManifestLocation) SetETag(v string) *JobManifestLocation { + s.ETag = &v return s } -// SetName sets the Name field's value. -func (s *GetAccessPointPolicyInput) SetName(v string) *GetAccessPointPolicyInput { - s.Name = &v +// SetObjectArn sets the ObjectArn field's value. +func (s *JobManifestLocation) SetObjectArn(v string) *JobManifestLocation { + s.ObjectArn = &v return s } -func (s *GetAccessPointPolicyInput) hostLabels() map[string]string { - return map[string]string{ - "AccountId": aws.StringValue(s.AccountId), - } +// SetObjectVersionId sets the ObjectVersionId field's value. +func (s *JobManifestLocation) SetObjectVersionId(v string) *JobManifestLocation { + s.ObjectVersionId = &v + return s } -type GetAccessPointPolicyOutput struct { +// Describes the format of a manifest. If the manifest is in CSV format, also +// describes the columns contained within the manifest. +type JobManifestSpec struct { _ struct{} `type:"structure"` - // The access point policy associated with the specified access point. - Policy *string `type:"string"` + // If the specified manifest object is in the S3BatchOperations_CSV_20180820 + // format, this element describes which columns contain the required data. + Fields []*string `type:"list"` + + // Indicates which of the available formats the specified manifest uses. + // + // Format is a required field + Format *string `type:"string" required:"true" enum:"JobManifestFormat"` } // String returns the string representation -func (s GetAccessPointPolicyOutput) String() string { +func (s JobManifestSpec) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetAccessPointPolicyOutput) GoString() string { +func (s JobManifestSpec) GoString() string { return s.String() } -// SetPolicy sets the Policy field's value. -func (s *GetAccessPointPolicyOutput) SetPolicy(v string) *GetAccessPointPolicyOutput { - s.Policy = &v +// Validate inspects the fields of the type to determine if they are valid. +func (s *JobManifestSpec) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "JobManifestSpec"} + if s.Format == nil { + invalidParams.Add(request.NewErrParamRequired("Format")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFields sets the Fields field's value. +func (s *JobManifestSpec) SetFields(v []*string) *JobManifestSpec { + s.Fields = v return s } -type GetAccessPointPolicyStatusInput struct { - _ struct{} `locationName:"GetAccessPointPolicyStatusRequest" type:"structure"` +// SetFormat sets the Format field's value. +func (s *JobManifestSpec) SetFormat(v string) *JobManifestSpec { + s.Format = &v + return s +} - // The account ID for the account that owns the specified access point. - // - // AccountId is a required field - AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` +// The operation that you want this job to perform on each object listed in +// the manifest. For more information about the available operations, see Operations +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-operations.html) +// in the Amazon Simple Storage Service Developer Guide. +type JobOperation struct { + _ struct{} `type:"structure"` - // The name of the access point whose policy status you want to retrieve. - // - // Name is a required field - Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + // Directs the specified job to invoke an AWS Lambda function on each object + // in the manifest. + LambdaInvoke *LambdaInvokeOperation `type:"structure"` + + // Directs the specified job to run an Initiate Glacier Restore call on each + // object in the manifest. + S3InitiateRestoreObject *S3InitiateRestoreObjectOperation `type:"structure"` + + // Directs the specified job to run a PUT Object acl call on each object in + // the manifest. + S3PutObjectAcl *S3SetObjectAclOperation `type:"structure"` + + // Directs the specified job to run a PUT Copy object call on each object in + // the manifest. + S3PutObjectCopy *S3CopyObjectOperation `type:"structure"` + + // Contains the configuration for an S3 Object Lock legal hold operation that + // an S3 Batch Operations job passes each object through to the underlying PutObjectLegalHold + // API. For more information, see Using S3 Object Lock legal hold with S3 Batch + // Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html) + // in the Amazon Simple Storage Service Developer Guide. + S3PutObjectLegalHold *S3SetObjectLegalHoldOperation `type:"structure"` + + // Contains the configuration parameters for the Object Lock retention action + // for an S3 Batch Operations job. Batch Operations passes each value through + // to the underlying PutObjectRetention API. For more information, see Using + // S3 Object Lock retention with S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html) + // in the Amazon Simple Storage Service Developer Guide. + S3PutObjectRetention *S3SetObjectRetentionOperation `type:"structure"` + + // Directs the specified job to run a PUT Object tagging call on each object + // in the manifest. + S3PutObjectTagging *S3SetObjectTaggingOperation `type:"structure"` } // String returns the string representation -func (s GetAccessPointPolicyStatusInput) String() string { +func (s JobOperation) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetAccessPointPolicyStatusInput) GoString() string { +func (s JobOperation) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetAccessPointPolicyStatusInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetAccessPointPolicyStatusInput"} - if s.AccountId == nil { - invalidParams.Add(request.NewErrParamRequired("AccountId")) +func (s *JobOperation) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "JobOperation"} + if s.LambdaInvoke != nil { + if err := s.LambdaInvoke.Validate(); err != nil { + invalidParams.AddNested("LambdaInvoke", err.(request.ErrInvalidParams)) + } } - if s.AccountId != nil && len(*s.AccountId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + if s.S3PutObjectAcl != nil { + if err := s.S3PutObjectAcl.Validate(); err != nil { + invalidParams.AddNested("S3PutObjectAcl", err.(request.ErrInvalidParams)) + } } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) + if s.S3PutObjectCopy != nil { + if err := s.S3PutObjectCopy.Validate(); err != nil { + invalidParams.AddNested("S3PutObjectCopy", err.(request.ErrInvalidParams)) + } } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + if s.S3PutObjectLegalHold != nil { + if err := s.S3PutObjectLegalHold.Validate(); err != nil { + invalidParams.AddNested("S3PutObjectLegalHold", err.(request.ErrInvalidParams)) + } + } + if s.S3PutObjectRetention != nil { + if err := s.S3PutObjectRetention.Validate(); err != nil { + invalidParams.AddNested("S3PutObjectRetention", err.(request.ErrInvalidParams)) + } + } + if s.S3PutObjectTagging != nil { + if err := s.S3PutObjectTagging.Validate(); err != nil { + invalidParams.AddNested("S3PutObjectTagging", err.(request.ErrInvalidParams)) + } } if invalidParams.Len() > 0 { @@ -2858,85 +6719,134 @@ func (s *GetAccessPointPolicyStatusInput) Validate() error { return nil } -// SetAccountId sets the AccountId field's value. -func (s *GetAccessPointPolicyStatusInput) SetAccountId(v string) *GetAccessPointPolicyStatusInput { - s.AccountId = &v +// SetLambdaInvoke sets the LambdaInvoke field's value. +func (s *JobOperation) SetLambdaInvoke(v *LambdaInvokeOperation) *JobOperation { + s.LambdaInvoke = v return s } -// SetName sets the Name field's value. -func (s *GetAccessPointPolicyStatusInput) SetName(v string) *GetAccessPointPolicyStatusInput { - s.Name = &v +// SetS3InitiateRestoreObject sets the S3InitiateRestoreObject field's value. +func (s *JobOperation) SetS3InitiateRestoreObject(v *S3InitiateRestoreObjectOperation) *JobOperation { + s.S3InitiateRestoreObject = v return s } -func (s *GetAccessPointPolicyStatusInput) hostLabels() map[string]string { - return map[string]string{ - "AccountId": aws.StringValue(s.AccountId), - } +// SetS3PutObjectAcl sets the S3PutObjectAcl field's value. +func (s *JobOperation) SetS3PutObjectAcl(v *S3SetObjectAclOperation) *JobOperation { + s.S3PutObjectAcl = v + return s } -type GetAccessPointPolicyStatusOutput struct { +// SetS3PutObjectCopy sets the S3PutObjectCopy field's value. +func (s *JobOperation) SetS3PutObjectCopy(v *S3CopyObjectOperation) *JobOperation { + s.S3PutObjectCopy = v + return s +} + +// SetS3PutObjectLegalHold sets the S3PutObjectLegalHold field's value. +func (s *JobOperation) SetS3PutObjectLegalHold(v *S3SetObjectLegalHoldOperation) *JobOperation { + s.S3PutObjectLegalHold = v + return s +} + +// SetS3PutObjectRetention sets the S3PutObjectRetention field's value. +func (s *JobOperation) SetS3PutObjectRetention(v *S3SetObjectRetentionOperation) *JobOperation { + s.S3PutObjectRetention = v + return s +} + +// SetS3PutObjectTagging sets the S3PutObjectTagging field's value. +func (s *JobOperation) SetS3PutObjectTagging(v *S3SetObjectTaggingOperation) *JobOperation { + s.S3PutObjectTagging = v + return s +} + +// Describes the total number of tasks that the specified job has started, the +// number of tasks that succeeded, and the number of tasks that failed. +type JobProgressSummary struct { _ struct{} `type:"structure"` - // Indicates the current policy status of the specified access point. - PolicyStatus *PolicyStatus `type:"structure"` + NumberOfTasksFailed *int64 `type:"long"` + + NumberOfTasksSucceeded *int64 `type:"long"` + + TotalNumberOfTasks *int64 `type:"long"` } // String returns the string representation -func (s GetAccessPointPolicyStatusOutput) String() string { +func (s JobProgressSummary) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetAccessPointPolicyStatusOutput) GoString() string { +func (s JobProgressSummary) GoString() string { return s.String() } -// SetPolicyStatus sets the PolicyStatus field's value. -func (s *GetAccessPointPolicyStatusOutput) SetPolicyStatus(v *PolicyStatus) *GetAccessPointPolicyStatusOutput { - s.PolicyStatus = v +// SetNumberOfTasksFailed sets the NumberOfTasksFailed field's value. +func (s *JobProgressSummary) SetNumberOfTasksFailed(v int64) *JobProgressSummary { + s.NumberOfTasksFailed = &v return s } -type GetJobTaggingInput struct { - _ struct{} `locationName:"GetJobTaggingRequest" type:"structure"` +// SetNumberOfTasksSucceeded sets the NumberOfTasksSucceeded field's value. +func (s *JobProgressSummary) SetNumberOfTasksSucceeded(v int64) *JobProgressSummary { + s.NumberOfTasksSucceeded = &v + return s +} - // The AWS account ID associated with the Amazon S3 Batch Operations job. - // - // AccountId is a required field - AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` +// SetTotalNumberOfTasks sets the TotalNumberOfTasks field's value. +func (s *JobProgressSummary) SetTotalNumberOfTasks(v int64) *JobProgressSummary { + s.TotalNumberOfTasks = &v + return s +} + +// Contains the configuration parameters for a job-completion report. +type JobReport struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) for the bucket where specified job-completion + // report will be stored. + Bucket *string `min:"1" type:"string"` - // The ID for the Amazon S3 Batch Operations job whose tags you want to retrieve. + // Indicates whether the specified job will generate a job-completion report. // - // JobId is a required field - JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"` + // Enabled is a required field + Enabled *bool `type:"boolean" required:"true"` + + // The format of the specified job-completion report. + Format *string `type:"string" enum:"JobReportFormat"` + + // An optional prefix to describe where in the specified bucket the job-completion + // report will be stored. Amazon S3 stores the job-completion report at /job-/report.json. + Prefix *string `min:"1" type:"string"` + + // Indicates whether the job-completion report will include details of all tasks + // or only failed tasks. + ReportScope *string `type:"string" enum:"JobReportScope"` } // String returns the string representation -func (s GetJobTaggingInput) String() string { +func (s JobReport) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetJobTaggingInput) GoString() string { +func (s JobReport) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetJobTaggingInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetJobTaggingInput"} - if s.AccountId == nil { - invalidParams.Add(request.NewErrParamRequired("AccountId")) - } - if s.AccountId != nil && len(*s.AccountId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) +func (s *JobReport) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "JobReport"} + if s.Bucket != nil && len(*s.Bucket) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) } - if s.JobId == nil { - invalidParams.Add(request.NewErrParamRequired("JobId")) + if s.Enabled == nil { + invalidParams.Add(request.NewErrParamRequired("Enabled")) } - if s.JobId != nil && len(*s.JobId) < 5 { - invalidParams.Add(request.NewErrParamMinLen("JobId", 5)) + if s.Prefix != nil && len(*s.Prefix) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Prefix", 1)) } if invalidParams.Len() > 0 { @@ -2945,75 +6855,104 @@ func (s *GetJobTaggingInput) Validate() error { return nil } -// SetAccountId sets the AccountId field's value. -func (s *GetJobTaggingInput) SetAccountId(v string) *GetJobTaggingInput { - s.AccountId = &v +// SetBucket sets the Bucket field's value. +func (s *JobReport) SetBucket(v string) *JobReport { + s.Bucket = &v return s } -// SetJobId sets the JobId field's value. -func (s *GetJobTaggingInput) SetJobId(v string) *GetJobTaggingInput { - s.JobId = &v +// SetEnabled sets the Enabled field's value. +func (s *JobReport) SetEnabled(v bool) *JobReport { + s.Enabled = &v return s } -func (s *GetJobTaggingInput) hostLabels() map[string]string { - return map[string]string{ - "AccountId": aws.StringValue(s.AccountId), - } +// SetFormat sets the Format field's value. +func (s *JobReport) SetFormat(v string) *JobReport { + s.Format = &v + return s } -type GetJobTaggingOutput struct { +// SetPrefix sets the Prefix field's value. +func (s *JobReport) SetPrefix(v string) *JobReport { + s.Prefix = &v + return s +} + +// SetReportScope sets the ReportScope field's value. +func (s *JobReport) SetReportScope(v string) *JobReport { + s.ReportScope = &v + return s +} + +// Contains the configuration parameters for a Lambda Invoke operation. +type LambdaInvokeOperation struct { _ struct{} `type:"structure"` - // The set of tags associated with the Amazon S3 Batch Operations job. - Tags []*S3Tag `type:"list"` + // The Amazon Resource Name (ARN) for the AWS Lambda function that the specified + // job will invoke for each object in the manifest. + FunctionArn *string `min:"1" type:"string"` } // String returns the string representation -func (s GetJobTaggingOutput) String() string { +func (s LambdaInvokeOperation) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetJobTaggingOutput) GoString() string { +func (s LambdaInvokeOperation) GoString() string { return s.String() } -// SetTags sets the Tags field's value. -func (s *GetJobTaggingOutput) SetTags(v []*S3Tag) *GetJobTaggingOutput { - s.Tags = v +// Validate inspects the fields of the type to determine if they are valid. +func (s *LambdaInvokeOperation) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "LambdaInvokeOperation"} + if s.FunctionArn != nil && len(*s.FunctionArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("FunctionArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFunctionArn sets the FunctionArn field's value. +func (s *LambdaInvokeOperation) SetFunctionArn(v string) *LambdaInvokeOperation { + s.FunctionArn = &v return s } -type GetPublicAccessBlockInput struct { - _ struct{} `locationName:"GetPublicAccessBlockRequest" type:"structure"` +// The container for the Outposts bucket lifecycle configuration. +type LifecycleConfiguration struct { + _ struct{} `type:"structure"` - // The account ID for the Amazon Web Services account whose PublicAccessBlock - // configuration you want to retrieve. - // - // AccountId is a required field - AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` + // A lifecycle rule for individual objects in an Outposts bucket. + Rules []*LifecycleRule `locationNameList:"Rule" type:"list"` } // String returns the string representation -func (s GetPublicAccessBlockInput) String() string { +func (s LifecycleConfiguration) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetPublicAccessBlockInput) GoString() string { +func (s LifecycleConfiguration) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetPublicAccessBlockInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetPublicAccessBlockInput"} - if s.AccountId == nil { - invalidParams.Add(request.NewErrParamRequired("AccountId")) - } - if s.AccountId != nil && len(*s.AccountId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) +func (s *LifecycleConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "LifecycleConfiguration"} + if s.Rules != nil { + for i, v := range s.Rules { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams)) + } + } } if invalidParams.Len() > 0 { @@ -3022,456 +6961,500 @@ func (s *GetPublicAccessBlockInput) Validate() error { return nil } -// SetAccountId sets the AccountId field's value. -func (s *GetPublicAccessBlockInput) SetAccountId(v string) *GetPublicAccessBlockInput { - s.AccountId = &v +// SetRules sets the Rules field's value. +func (s *LifecycleConfiguration) SetRules(v []*LifecycleRule) *LifecycleConfiguration { + s.Rules = v return s } -func (s *GetPublicAccessBlockInput) hostLabels() map[string]string { - return map[string]string{ - "AccountId": aws.StringValue(s.AccountId), - } -} +// The container of the Outposts bucket lifecycle expiration. +type LifecycleExpiration struct { + _ struct{} `type:"structure"` -type GetPublicAccessBlockOutput struct { - _ struct{} `type:"structure" payload:"PublicAccessBlockConfiguration"` + // Indicates at what date the object is to be deleted. Should be in GMT ISO + // 8601 format. + Date *time.Time `type:"timestamp"` - // The PublicAccessBlock configuration currently in effect for this Amazon Web - // Services account. - PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"` + // Indicates the lifetime, in days, of the objects that are subject to the rule. + // The value must be a non-zero positive integer. + Days *int64 `type:"integer"` + + // Indicates whether Amazon S3 will remove a delete marker with no noncurrent + // versions. If set to true, the delete marker will be expired. If set to false, + // the policy takes no action. This cannot be specified with Days or Date in + // a Lifecycle Expiration Policy. + ExpiredObjectDeleteMarker *bool `type:"boolean"` } // String returns the string representation -func (s GetPublicAccessBlockOutput) String() string { +func (s LifecycleExpiration) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s GetPublicAccessBlockOutput) GoString() string { +func (s LifecycleExpiration) GoString() string { return s.String() } -// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value. -func (s *GetPublicAccessBlockOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetPublicAccessBlockOutput { - s.PublicAccessBlockConfiguration = v +// SetDate sets the Date field's value. +func (s *LifecycleExpiration) SetDate(v time.Time) *LifecycleExpiration { + s.Date = &v return s } -// A container element for the job configuration and status information returned -// by a Describe Job request. -type JobDescriptor struct { - _ struct{} `type:"structure"` - - // Indicates whether confirmation is required before Amazon S3 begins running - // the specified job. Confirmation is required only for jobs created through - // the Amazon S3 console. - ConfirmationRequired *bool `type:"boolean"` - - // A timestamp indicating when this job was created. - CreationTime *time.Time `type:"timestamp"` - - // The description for this job, if one was provided in this job's Create Job - // request. - Description *string `min:"1" type:"string"` - - // If the specified job failed, this field contains information describing the - // failure. - FailureReasons []*JobFailure `type:"list"` - - // The Amazon Resource Name (ARN) for this job. - JobArn *string `min:"1" type:"string"` - - // The ID for the specified job. - JobId *string `min:"5" type:"string"` - - // The configuration information for the specified job's manifest object. - Manifest *JobManifest `type:"structure"` - - // The operation that the specified job is configured to execute on the objects - // listed in the manifest. - Operation *JobOperation `type:"structure"` +// SetDays sets the Days field's value. +func (s *LifecycleExpiration) SetDays(v int64) *LifecycleExpiration { + s.Days = &v + return s +} - // The priority of the specified job. - Priority *int64 `type:"integer"` +// SetExpiredObjectDeleteMarker sets the ExpiredObjectDeleteMarker field's value. +func (s *LifecycleExpiration) SetExpiredObjectDeleteMarker(v bool) *LifecycleExpiration { + s.ExpiredObjectDeleteMarker = &v + return s +} - // Describes the total number of tasks that the specified job has executed, - // the number of tasks that succeeded, and the number of tasks that failed. - ProgressSummary *JobProgressSummary `type:"structure"` +// The container for the Outposts bucket lifecycle rule. +type LifecycleRule struct { + _ struct{} `type:"structure"` - // Contains the configuration information for the job-completion report if you - // requested one in the Create Job request. - Report *JobReport `type:"structure"` + // Specifies the days since the initiation of an incomplete multipart upload + // that Amazon S3 waits before permanently removing all parts of the upload. + // For more information, see Aborting Incomplete Multipart Uploads Using a Bucket + // Lifecycle Policy (https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config) + // in the Amazon Simple Storage Service Developer Guide. + AbortIncompleteMultipartUpload *AbortIncompleteMultipartUpload `type:"structure"` - // The Amazon Resource Name (ARN) for the AWS Identity and Access Management - // (IAM) role assigned to execute the tasks for this job. - RoleArn *string `min:"1" type:"string"` + // Specifies the expiration for the lifecycle of the object in the form of date, + // days and, whether the object has a delete marker. + Expiration *LifecycleExpiration `type:"structure"` - // The current status of the specified job. - Status *string `type:"string" enum:"JobStatus"` + // The container for the filter of lifecycle rule. + Filter *LifecycleRuleFilter `type:"structure"` - StatusUpdateReason *string `min:"1" type:"string"` + // Unique identifier for the rule. The value cannot be longer than 255 characters. + ID *string `type:"string"` - // The reason why the specified job was suspended. A job is only suspended if - // you create it through the Amazon S3 console. When you create the job, it - // enters the Suspended state to await confirmation before running. After you - // confirm the job, it automatically exits the Suspended state. - SuspendedCause *string `min:"1" type:"string"` + // The noncurrent version expiration of the lifecycle rule. + // + // This is not supported by Amazon S3 on Outposts buckets. + NoncurrentVersionExpiration *NoncurrentVersionExpiration `type:"structure"` + + // Specifies the transition rule for the lifecycle rule that describes when + // noncurrent objects transition to a specific storage class. If your bucket + // is versioning-enabled (or versioning is suspended), you can set this action + // to request that Amazon S3 transition noncurrent object versions to a specific + // storage class at a set period in the object's lifetime. + // + // This is not supported by Amazon S3 on Outposts buckets. + NoncurrentVersionTransitions []*NoncurrentVersionTransition `locationNameList:"NoncurrentVersionTransition" type:"list"` - // The timestamp when this job was suspended, if it has been suspended. - SuspendedDate *time.Time `type:"timestamp"` + // If 'Enabled', the rule is currently being applied. If 'Disabled', the rule + // is not currently being applied. + // + // Status is a required field + Status *string `type:"string" required:"true" enum:"ExpirationStatus"` - // A timestamp indicating when this job terminated. A job's termination date - // is the date and time when it succeeded, failed, or was canceled. - TerminationDate *time.Time `type:"timestamp"` + // Specifies when an Amazon S3 object transitions to a specified storage class. + // + // This is not supported by Amazon S3 on Outposts buckets. + Transitions []*Transition `locationNameList:"Transition" type:"list"` } // String returns the string representation -func (s JobDescriptor) String() string { +func (s LifecycleRule) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s JobDescriptor) GoString() string { +func (s LifecycleRule) GoString() string { return s.String() } -// SetConfirmationRequired sets the ConfirmationRequired field's value. -func (s *JobDescriptor) SetConfirmationRequired(v bool) *JobDescriptor { - s.ConfirmationRequired = &v +// Validate inspects the fields of the type to determine if they are valid. +func (s *LifecycleRule) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "LifecycleRule"} + if s.Status == nil { + invalidParams.Add(request.NewErrParamRequired("Status")) + } + if s.Filter != nil { + if err := s.Filter.Validate(); err != nil { + invalidParams.AddNested("Filter", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAbortIncompleteMultipartUpload sets the AbortIncompleteMultipartUpload field's value. +func (s *LifecycleRule) SetAbortIncompleteMultipartUpload(v *AbortIncompleteMultipartUpload) *LifecycleRule { + s.AbortIncompleteMultipartUpload = v return s } -// SetCreationTime sets the CreationTime field's value. -func (s *JobDescriptor) SetCreationTime(v time.Time) *JobDescriptor { - s.CreationTime = &v +// SetExpiration sets the Expiration field's value. +func (s *LifecycleRule) SetExpiration(v *LifecycleExpiration) *LifecycleRule { + s.Expiration = v return s } -// SetDescription sets the Description field's value. -func (s *JobDescriptor) SetDescription(v string) *JobDescriptor { - s.Description = &v +// SetFilter sets the Filter field's value. +func (s *LifecycleRule) SetFilter(v *LifecycleRuleFilter) *LifecycleRule { + s.Filter = v return s } -// SetFailureReasons sets the FailureReasons field's value. -func (s *JobDescriptor) SetFailureReasons(v []*JobFailure) *JobDescriptor { - s.FailureReasons = v +// SetID sets the ID field's value. +func (s *LifecycleRule) SetID(v string) *LifecycleRule { + s.ID = &v return s } -// SetJobArn sets the JobArn field's value. -func (s *JobDescriptor) SetJobArn(v string) *JobDescriptor { - s.JobArn = &v +// SetNoncurrentVersionExpiration sets the NoncurrentVersionExpiration field's value. +func (s *LifecycleRule) SetNoncurrentVersionExpiration(v *NoncurrentVersionExpiration) *LifecycleRule { + s.NoncurrentVersionExpiration = v return s } -// SetJobId sets the JobId field's value. -func (s *JobDescriptor) SetJobId(v string) *JobDescriptor { - s.JobId = &v +// SetNoncurrentVersionTransitions sets the NoncurrentVersionTransitions field's value. +func (s *LifecycleRule) SetNoncurrentVersionTransitions(v []*NoncurrentVersionTransition) *LifecycleRule { + s.NoncurrentVersionTransitions = v return s } -// SetManifest sets the Manifest field's value. -func (s *JobDescriptor) SetManifest(v *JobManifest) *JobDescriptor { - s.Manifest = v +// SetStatus sets the Status field's value. +func (s *LifecycleRule) SetStatus(v string) *LifecycleRule { + s.Status = &v return s } -// SetOperation sets the Operation field's value. -func (s *JobDescriptor) SetOperation(v *JobOperation) *JobDescriptor { - s.Operation = v +// SetTransitions sets the Transitions field's value. +func (s *LifecycleRule) SetTransitions(v []*Transition) *LifecycleRule { + s.Transitions = v return s } -// SetPriority sets the Priority field's value. -func (s *JobDescriptor) SetPriority(v int64) *JobDescriptor { - s.Priority = &v - return s -} +// The container for the Outposts bucket lifecycle rule and operator. +type LifecycleRuleAndOperator struct { + _ struct{} `type:"structure"` -// SetProgressSummary sets the ProgressSummary field's value. -func (s *JobDescriptor) SetProgressSummary(v *JobProgressSummary) *JobDescriptor { - s.ProgressSummary = v - return s -} + // Prefix identifying one or more objects to which the rule applies. + Prefix *string `type:"string"` -// SetReport sets the Report field's value. -func (s *JobDescriptor) SetReport(v *JobReport) *JobDescriptor { - s.Report = v - return s + // All of these tags must exist in the object's tag set in order for the rule + // to apply. + Tags []*S3Tag `type:"list"` } -// SetRoleArn sets the RoleArn field's value. -func (s *JobDescriptor) SetRoleArn(v string) *JobDescriptor { - s.RoleArn = &v - return s +// String returns the string representation +func (s LifecycleRuleAndOperator) String() string { + return awsutil.Prettify(s) } -// SetStatus sets the Status field's value. -func (s *JobDescriptor) SetStatus(v string) *JobDescriptor { - s.Status = &v - return s +// GoString returns the string representation +func (s LifecycleRuleAndOperator) GoString() string { + return s.String() } -// SetStatusUpdateReason sets the StatusUpdateReason field's value. -func (s *JobDescriptor) SetStatusUpdateReason(v string) *JobDescriptor { - s.StatusUpdateReason = &v - return s -} +// Validate inspects the fields of the type to determine if they are valid. +func (s *LifecycleRuleAndOperator) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "LifecycleRuleAndOperator"} + 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)) + } + } + } -// SetSuspendedCause sets the SuspendedCause field's value. -func (s *JobDescriptor) SetSuspendedCause(v string) *JobDescriptor { - s.SuspendedCause = &v - return s + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// SetSuspendedDate sets the SuspendedDate field's value. -func (s *JobDescriptor) SetSuspendedDate(v time.Time) *JobDescriptor { - s.SuspendedDate = &v +// SetPrefix sets the Prefix field's value. +func (s *LifecycleRuleAndOperator) SetPrefix(v string) *LifecycleRuleAndOperator { + s.Prefix = &v return s } -// SetTerminationDate sets the TerminationDate field's value. -func (s *JobDescriptor) SetTerminationDate(v time.Time) *JobDescriptor { - s.TerminationDate = &v +// SetTags sets the Tags field's value. +func (s *LifecycleRuleAndOperator) SetTags(v []*S3Tag) *LifecycleRuleAndOperator { + s.Tags = v return s } -// If this job failed, this element indicates why the job failed. -type JobFailure struct { +// The container for the filter of the lifecycle rule. +type LifecycleRuleFilter struct { _ struct{} `type:"structure"` - // The failure code, if any, for the specified job. - FailureCode *string `min:"1" type:"string"` + // The container for the AND condition for the lifecycle rule. + And *LifecycleRuleAndOperator `type:"structure"` - // The failure reason, if any, for the specified job. - FailureReason *string `min:"1" type:"string"` + // Prefix identifying one or more objects to which the rule applies. + Prefix *string `type:"string"` + + Tag *S3Tag `type:"structure"` } // String returns the string representation -func (s JobFailure) String() string { +func (s LifecycleRuleFilter) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s JobFailure) GoString() string { +func (s LifecycleRuleFilter) GoString() string { return s.String() } -// SetFailureCode sets the FailureCode field's value. -func (s *JobFailure) SetFailureCode(v string) *JobFailure { - s.FailureCode = &v - return s +// Validate inspects the fields of the type to determine if they are valid. +func (s *LifecycleRuleFilter) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "LifecycleRuleFilter"} + if s.And != nil { + if err := s.And.Validate(); err != nil { + invalidParams.AddNested("And", err.(request.ErrInvalidParams)) + } + } + if s.Tag != nil { + if err := s.Tag.Validate(); err != nil { + invalidParams.AddNested("Tag", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// SetFailureReason sets the FailureReason field's value. -func (s *JobFailure) SetFailureReason(v string) *JobFailure { - s.FailureReason = &v +// SetAnd sets the And field's value. +func (s *LifecycleRuleFilter) SetAnd(v *LifecycleRuleAndOperator) *LifecycleRuleFilter { + s.And = v return s } -// Contains the configuration and status information for a single job retrieved -// as part of a job list. -type JobListDescriptor struct { - _ struct{} `type:"structure"` - - // A timestamp indicating when the specified job was created. - CreationTime *time.Time `type:"timestamp"` - - // The user-specified description that was included in the specified job's Create - // Job request. - Description *string `min:"1" type:"string"` +// SetPrefix sets the Prefix field's value. +func (s *LifecycleRuleFilter) SetPrefix(v string) *LifecycleRuleFilter { + s.Prefix = &v + return s +} - // The ID for the specified job. - JobId *string `min:"5" type:"string"` +// SetTag sets the Tag field's value. +func (s *LifecycleRuleFilter) SetTag(v *S3Tag) *LifecycleRuleFilter { + s.Tag = v + return s +} - // The operation that the specified job is configured to run on each object - // listed in the manifest. - Operation *string `type:"string" enum:"OperationName"` +type ListAccessPointsInput struct { + _ struct{} `locationName:"ListAccessPointsRequest" type:"structure"` - // The current priority for the specified job. - Priority *int64 `type:"integer"` + // The AWS account ID for owner of the bucket whose access points you want to + // list. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // Describes the total number of tasks that the specified job has executed, - // the number of tasks that succeeded, and the number of tasks that failed. - ProgressSummary *JobProgressSummary `type:"structure"` + // The name of the bucket whose associated access points you want to list. + // + // For Amazon S3 on Outposts specify the ARN of the bucket accessed in the format + // arn:aws:s3-outposts:::outpost//bucket/. + // For example, to access the bucket reports through outpost my-outpost owned + // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. + // The value must be URL encoded. + Bucket *string `location:"querystring" locationName:"bucket" min:"3" type:"string"` - // The specified job's current status. - Status *string `type:"string" enum:"JobStatus"` + // The maximum number of access points that you want to include in the list. + // If the specified bucket has more than this number of access points, then + // the response will include a continuation token in the NextToken field that + // you can use to retrieve the next page of access points. + MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"` - // A timestamp indicating when the specified job terminated. A job's termination - // date is the date and time when it succeeded, failed, or was canceled. - TerminationDate *time.Time `type:"timestamp"` + // A continuation token. If a previous call to ListAccessPoints returned a continuation + // token in the NextToken field, then providing that value here causes Amazon + // S3 to retrieve the next page of results. + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` } // String returns the string representation -func (s JobListDescriptor) String() string { +func (s ListAccessPointsInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s JobListDescriptor) GoString() string { +func (s ListAccessPointsInput) GoString() string { return s.String() } -// SetCreationTime sets the CreationTime field's value. -func (s *JobListDescriptor) SetCreationTime(v time.Time) *JobListDescriptor { - s.CreationTime = &v - return s +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListAccessPointsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListAccessPointsInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// SetDescription sets the Description field's value. -func (s *JobListDescriptor) SetDescription(v string) *JobListDescriptor { - s.Description = &v +// SetAccountId sets the AccountId field's value. +func (s *ListAccessPointsInput) SetAccountId(v string) *ListAccessPointsInput { + s.AccountId = &v return s } -// SetJobId sets the JobId field's value. -func (s *JobListDescriptor) SetJobId(v string) *JobListDescriptor { - s.JobId = &v +// SetBucket sets the Bucket field's value. +func (s *ListAccessPointsInput) SetBucket(v string) *ListAccessPointsInput { + s.Bucket = &v return s } -// SetOperation sets the Operation field's value. -func (s *JobListDescriptor) SetOperation(v string) *JobListDescriptor { - s.Operation = &v +// SetMaxResults sets the MaxResults field's value. +func (s *ListAccessPointsInput) SetMaxResults(v int64) *ListAccessPointsInput { + s.MaxResults = &v return s } -// SetPriority sets the Priority field's value. -func (s *JobListDescriptor) SetPriority(v int64) *JobListDescriptor { - s.Priority = &v +// SetNextToken sets the NextToken field's value. +func (s *ListAccessPointsInput) SetNextToken(v string) *ListAccessPointsInput { + s.NextToken = &v return s } -// SetProgressSummary sets the ProgressSummary field's value. -func (s *JobListDescriptor) SetProgressSummary(v *JobProgressSummary) *JobListDescriptor { - s.ProgressSummary = v - return s +func (s *ListAccessPointsInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } } -// SetStatus sets the Status field's value. -func (s *JobListDescriptor) SetStatus(v string) *JobListDescriptor { - s.Status = &v - return s +func (s *ListAccessPointsInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) } -// SetTerminationDate sets the TerminationDate field's value. -func (s *JobListDescriptor) SetTerminationDate(v time.Time) *JobListDescriptor { - s.TerminationDate = &v - return s +func (s *ListAccessPointsInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) } -// Contains the configuration information for a job's manifest. -type JobManifest struct { - _ struct{} `type:"structure"` +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *ListAccessPointsInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} - // Contains the information required to locate the specified job's manifest. - // - // Location is a required field - Location *JobManifestLocation `type:"structure" required:"true"` +func (s *ListAccessPointsInput) updateAccountID(accountId string) error { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + } else if *s.AccountId != accountId { + return fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil +} + +type ListAccessPointsOutput struct { + _ struct{} `type:"structure"` - // Describes the format of the specified job's manifest. If the manifest is - // in CSV format, also describes the columns contained within the manifest. - // - // Spec is a required field - Spec *JobManifestSpec `type:"structure" required:"true"` + // Contains identification and configuration information for one or more access + // points associated with the specified bucket. + AccessPointList []*AccessPoint `locationNameList:"AccessPoint" type:"list"` + + // If the specified bucket has more access points than can be returned in one + // call to this API, this field contains a continuation token that you can provide + // in subsequent calls to this API to retrieve additional access points. + NextToken *string `min:"1" type:"string"` } // String returns the string representation -func (s JobManifest) String() string { +func (s ListAccessPointsOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s JobManifest) GoString() string { +func (s ListAccessPointsOutput) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *JobManifest) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "JobManifest"} - if s.Location == nil { - invalidParams.Add(request.NewErrParamRequired("Location")) - } - if s.Spec == nil { - invalidParams.Add(request.NewErrParamRequired("Spec")) - } - if s.Location != nil { - if err := s.Location.Validate(); err != nil { - invalidParams.AddNested("Location", err.(request.ErrInvalidParams)) - } - } - if s.Spec != nil { - if err := s.Spec.Validate(); err != nil { - invalidParams.AddNested("Spec", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetLocation sets the Location field's value. -func (s *JobManifest) SetLocation(v *JobManifestLocation) *JobManifest { - s.Location = v +// SetAccessPointList sets the AccessPointList field's value. +func (s *ListAccessPointsOutput) SetAccessPointList(v []*AccessPoint) *ListAccessPointsOutput { + s.AccessPointList = v return s } -// SetSpec sets the Spec field's value. -func (s *JobManifest) SetSpec(v *JobManifestSpec) *JobManifest { - s.Spec = v +// SetNextToken sets the NextToken field's value. +func (s *ListAccessPointsOutput) SetNextToken(v string) *ListAccessPointsOutput { + s.NextToken = &v return s } -// Contains the information required to locate a manifest object. -type JobManifestLocation struct { - _ struct{} `type:"structure"` +type ListJobsInput struct { + _ struct{} `locationName:"ListJobsRequest" type:"structure"` - // The ETag for the specified manifest object. - // - // ETag is a required field - ETag *string `min:"1" type:"string" required:"true"` + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The Amazon Resource Name (ARN) for a manifest object. - // - // ObjectArn is a required field - ObjectArn *string `min:"1" type:"string" required:"true"` + // The List Jobs request returns jobs that match the statuses listed in this + // element. + JobStatuses []*string `location:"querystring" locationName:"jobStatuses" type:"list"` - // The optional version ID to identify a specific version of the manifest object. - ObjectVersionId *string `min:"1" type:"string"` + // The maximum number of jobs that Amazon S3 will include in the List Jobs response. + // If there are more jobs than this number, the response will include a pagination + // token in the NextToken field to enable you to retrieve the next page of results. + MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"` + + // A pagination token to request the next page of results. Use the token that + // Amazon S3 returned in the NextToken element of the ListJobsResult from the + // previous List Jobs request. + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` } // String returns the string representation -func (s JobManifestLocation) String() string { +func (s ListJobsInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s JobManifestLocation) GoString() string { +func (s ListJobsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *JobManifestLocation) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "JobManifestLocation"} - if s.ETag == nil { - invalidParams.Add(request.NewErrParamRequired("ETag")) - } - if s.ETag != nil && len(*s.ETag) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ETag", 1)) - } - if s.ObjectArn == nil { - invalidParams.Add(request.NewErrParamRequired("ObjectArn")) +func (s *ListJobsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListJobsInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) } - if s.ObjectArn != nil && len(*s.ObjectArn) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ObjectArn", 1)) + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.ObjectVersionId != nil && len(*s.ObjectVersionId) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ObjectVersionId", 1)) + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) } if invalidParams.Len() > 0 { @@ -3480,156 +7463,112 @@ func (s *JobManifestLocation) Validate() error { return nil } -// SetETag sets the ETag field's value. -func (s *JobManifestLocation) SetETag(v string) *JobManifestLocation { - s.ETag = &v +// SetAccountId sets the AccountId field's value. +func (s *ListJobsInput) SetAccountId(v string) *ListJobsInput { + s.AccountId = &v return s } -// SetObjectArn sets the ObjectArn field's value. -func (s *JobManifestLocation) SetObjectArn(v string) *JobManifestLocation { - s.ObjectArn = &v +// SetJobStatuses sets the JobStatuses field's value. +func (s *ListJobsInput) SetJobStatuses(v []*string) *ListJobsInput { + s.JobStatuses = v return s } -// SetObjectVersionId sets the ObjectVersionId field's value. -func (s *JobManifestLocation) SetObjectVersionId(v string) *JobManifestLocation { - s.ObjectVersionId = &v +// SetMaxResults sets the MaxResults field's value. +func (s *ListJobsInput) SetMaxResults(v int64) *ListJobsInput { + s.MaxResults = &v return s } -// Describes the format of a manifest. If the manifest is in CSV format, also -// describes the columns contained within the manifest. -type JobManifestSpec struct { +// SetNextToken sets the NextToken field's value. +func (s *ListJobsInput) SetNextToken(v string) *ListJobsInput { + s.NextToken = &v + return s +} + +func (s *ListJobsInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } +} + +type ListJobsOutput struct { _ struct{} `type:"structure"` - // If the specified manifest object is in the S3BatchOperations_CSV_20180820 - // format, this element describes which columns contain the required data. - Fields []*string `type:"list"` + // The list of current jobs and jobs that have ended within the last 30 days. + Jobs []*JobListDescriptor `type:"list"` - // Indicates which of the available formats the specified manifest uses. - // - // Format is a required field - Format *string `type:"string" required:"true" enum:"JobManifestFormat"` + // If the List Jobs request produced more than the maximum number of results, + // you can pass this value into a subsequent List Jobs request in order to retrieve + // the next page of results. + NextToken *string `min:"1" type:"string"` } // String returns the string representation -func (s JobManifestSpec) String() string { +func (s ListJobsOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s JobManifestSpec) GoString() string { +func (s ListJobsOutput) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *JobManifestSpec) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "JobManifestSpec"} - if s.Format == nil { - invalidParams.Add(request.NewErrParamRequired("Format")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetFields sets the Fields field's value. -func (s *JobManifestSpec) SetFields(v []*string) *JobManifestSpec { - s.Fields = v +// SetJobs sets the Jobs field's value. +func (s *ListJobsOutput) SetJobs(v []*JobListDescriptor) *ListJobsOutput { + s.Jobs = v return s } -// SetFormat sets the Format field's value. -func (s *JobManifestSpec) SetFormat(v string) *JobManifestSpec { - s.Format = &v +// SetNextToken sets the NextToken field's value. +func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput { + s.NextToken = &v return s } -// The operation that you want this job to perform on each object listed in -// the manifest. For more information about the available operations, see Available -// Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-operations.html) -// in the Amazon Simple Storage Service Developer Guide. -type JobOperation struct { - _ struct{} `type:"structure"` - - // Directs the specified job to invoke an AWS Lambda function on each object - // in the manifest. - LambdaInvoke *LambdaInvokeOperation `type:"structure"` - - // Directs the specified job to execute an Initiate Glacier Restore call on - // each object in the manifest. - S3InitiateRestoreObject *S3InitiateRestoreObjectOperation `type:"structure"` - - // Directs the specified job to execute a PUT Object acl call on each object - // in the manifest. - S3PutObjectAcl *S3SetObjectAclOperation `type:"structure"` +type ListRegionalBucketsInput struct { + _ struct{} `locationName:"ListRegionalBucketsRequest" type:"structure"` - // Directs the specified job to execute a PUT Copy object call on each object - // in the manifest. - S3PutObjectCopy *S3CopyObjectOperation `type:"structure"` + // The AWS account ID of the Outposts bucket. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // Contains the configuration parameters for a Set Object Legal Hold operation. - // Amazon S3 Batch Operations passes each value through to the underlying PUT - // Object Legal Hold API. For more information about the parameters for this - // operation, see PUT Object Legal Hold (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.htmll#object-lock-legal-holds). - S3PutObjectLegalHold *S3SetObjectLegalHoldOperation `type:"structure"` + MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"` - // Contains the configuration parameters for a Set Object Retention operation. - // Amazon S3 Batch Operations passes each value through to the underlying PUT - // Object Retention API. For more information about the parameters for this - // operation, see PUT Object Retention (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes). - S3PutObjectRetention *S3SetObjectRetentionOperation `type:"structure"` + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` - // Directs the specified job to execute a PUT Object tagging call on each object - // in the manifest. - S3PutObjectTagging *S3SetObjectTaggingOperation `type:"structure"` + // The ID of the AWS Outposts. + // + // This is required by Amazon S3 on Outposts buckets. + OutpostId *string `location:"header" locationName:"x-amz-outpost-id" min:"1" type:"string"` } // String returns the string representation -func (s JobOperation) String() string { +func (s ListRegionalBucketsInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s JobOperation) GoString() string { +func (s ListRegionalBucketsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *JobOperation) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "JobOperation"} - if s.LambdaInvoke != nil { - if err := s.LambdaInvoke.Validate(); err != nil { - invalidParams.AddNested("LambdaInvoke", err.(request.ErrInvalidParams)) - } - } - if s.S3PutObjectAcl != nil { - if err := s.S3PutObjectAcl.Validate(); err != nil { - invalidParams.AddNested("S3PutObjectAcl", err.(request.ErrInvalidParams)) - } - } - if s.S3PutObjectCopy != nil { - if err := s.S3PutObjectCopy.Validate(); err != nil { - invalidParams.AddNested("S3PutObjectCopy", err.(request.ErrInvalidParams)) - } +func (s *ListRegionalBucketsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListRegionalBucketsInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) } - if s.S3PutObjectLegalHold != nil { - if err := s.S3PutObjectLegalHold.Validate(); err != nil { - invalidParams.AddNested("S3PutObjectLegalHold", err.(request.ErrInvalidParams)) - } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.S3PutObjectRetention != nil { - if err := s.S3PutObjectRetention.Validate(); err != nil { - invalidParams.AddNested("S3PutObjectRetention", err.(request.ErrInvalidParams)) - } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) } - if s.S3PutObjectTagging != nil { - if err := s.S3PutObjectTagging.Validate(); err != nil { - invalidParams.AddNested("S3PutObjectTagging", err.(request.ErrInvalidParams)) - } + if s.OutpostId != nil && len(*s.OutpostId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("OutpostId", 1)) } if invalidParams.Len() > 0 { @@ -3638,262 +7577,324 @@ func (s *JobOperation) Validate() error { return nil } -// SetLambdaInvoke sets the LambdaInvoke field's value. -func (s *JobOperation) SetLambdaInvoke(v *LambdaInvokeOperation) *JobOperation { - s.LambdaInvoke = v - return s -} - -// SetS3InitiateRestoreObject sets the S3InitiateRestoreObject field's value. -func (s *JobOperation) SetS3InitiateRestoreObject(v *S3InitiateRestoreObjectOperation) *JobOperation { - s.S3InitiateRestoreObject = v +// SetAccountId sets the AccountId field's value. +func (s *ListRegionalBucketsInput) SetAccountId(v string) *ListRegionalBucketsInput { + s.AccountId = &v return s } -// SetS3PutObjectAcl sets the S3PutObjectAcl field's value. -func (s *JobOperation) SetS3PutObjectAcl(v *S3SetObjectAclOperation) *JobOperation { - s.S3PutObjectAcl = v +// SetMaxResults sets the MaxResults field's value. +func (s *ListRegionalBucketsInput) SetMaxResults(v int64) *ListRegionalBucketsInput { + s.MaxResults = &v return s } -// SetS3PutObjectCopy sets the S3PutObjectCopy field's value. -func (s *JobOperation) SetS3PutObjectCopy(v *S3CopyObjectOperation) *JobOperation { - s.S3PutObjectCopy = v +// SetNextToken sets the NextToken field's value. +func (s *ListRegionalBucketsInput) SetNextToken(v string) *ListRegionalBucketsInput { + s.NextToken = &v return s } -// SetS3PutObjectLegalHold sets the S3PutObjectLegalHold field's value. -func (s *JobOperation) SetS3PutObjectLegalHold(v *S3SetObjectLegalHoldOperation) *JobOperation { - s.S3PutObjectLegalHold = v +// SetOutpostId sets the OutpostId field's value. +func (s *ListRegionalBucketsInput) SetOutpostId(v string) *ListRegionalBucketsInput { + s.OutpostId = &v return s } -// SetS3PutObjectRetention sets the S3PutObjectRetention field's value. -func (s *JobOperation) SetS3PutObjectRetention(v *S3SetObjectRetentionOperation) *JobOperation { - s.S3PutObjectRetention = v - return s +func (s *ListRegionalBucketsInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } } -// SetS3PutObjectTagging sets the S3PutObjectTagging field's value. -func (s *JobOperation) SetS3PutObjectTagging(v *S3SetObjectTaggingOperation) *JobOperation { - s.S3PutObjectTagging = v - return s +func (s *ListRegionalBucketsInput) getOutpostID() (string, error) { + if s.OutpostId == nil { + return "", fmt.Errorf("member OutpostId is nil") + } + return *s.OutpostId, nil } -// Describes the total number of tasks that the specified job has executed, -// the number of tasks that succeeded, and the number of tasks that failed. -type JobProgressSummary struct { - _ struct{} `type:"structure"` +func (s *ListRegionalBucketsInput) hasOutpostID() bool { + if s.OutpostId == nil { + return false + } + return true +} - NumberOfTasksFailed *int64 `type:"long"` +type ListRegionalBucketsOutput struct { + _ struct{} `type:"structure"` - NumberOfTasksSucceeded *int64 `type:"long"` + // NextToken is sent when isTruncated is true, which means there are more buckets + // that can be listed. The next list requests to Amazon S3 can be continued + // with this NextToken. NextToken is obfuscated and is not a real key. + NextToken *string `min:"1" type:"string"` - TotalNumberOfTasks *int64 `type:"long"` + RegionalBucketList []*RegionalBucket `locationNameList:"RegionalBucket" type:"list"` } // String returns the string representation -func (s JobProgressSummary) String() string { +func (s ListRegionalBucketsOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s JobProgressSummary) GoString() string { +func (s ListRegionalBucketsOutput) GoString() string { return s.String() } -// SetNumberOfTasksFailed sets the NumberOfTasksFailed field's value. -func (s *JobProgressSummary) SetNumberOfTasksFailed(v int64) *JobProgressSummary { - s.NumberOfTasksFailed = &v +// SetNextToken sets the NextToken field's value. +func (s *ListRegionalBucketsOutput) SetNextToken(v string) *ListRegionalBucketsOutput { + s.NextToken = &v return s } -// SetNumberOfTasksSucceeded sets the NumberOfTasksSucceeded field's value. -func (s *JobProgressSummary) SetNumberOfTasksSucceeded(v int64) *JobProgressSummary { - s.NumberOfTasksSucceeded = &v +// SetRegionalBucketList sets the RegionalBucketList field's value. +func (s *ListRegionalBucketsOutput) SetRegionalBucketList(v []*RegionalBucket) *ListRegionalBucketsOutput { + s.RegionalBucketList = v return s } -// SetTotalNumberOfTasks sets the TotalNumberOfTasks field's value. -func (s *JobProgressSummary) SetTotalNumberOfTasks(v int64) *JobProgressSummary { - s.TotalNumberOfTasks = &v - return s +// The container of the noncurrent version expiration. +type NoncurrentVersionExpiration struct { + _ struct{} `type:"structure"` + + // Specifies the number of days an object is noncurrent before Amazon S3 can + // perform the associated action. For information about the noncurrent days + // 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) + // in the Amazon Simple Storage Service Developer Guide. + NoncurrentDays *int64 `type:"integer"` } -// Contains the configuration parameters for a job-completion report. -type JobReport struct { - _ struct{} `type:"structure"` +// String returns the string representation +func (s NoncurrentVersionExpiration) String() string { + return awsutil.Prettify(s) +} - // The Amazon Resource Name (ARN) for the bucket where specified job-completion - // report will be stored. - Bucket *string `min:"1" type:"string"` +// GoString returns the string representation +func (s NoncurrentVersionExpiration) GoString() string { + return s.String() +} - // Indicates whether the specified job will generate a job-completion report. - // - // Enabled is a required field - Enabled *bool `type:"boolean" required:"true"` +// SetNoncurrentDays sets the NoncurrentDays field's value. +func (s *NoncurrentVersionExpiration) SetNoncurrentDays(v int64) *NoncurrentVersionExpiration { + s.NoncurrentDays = &v + return s +} - // The format of the specified job-completion report. - Format *string `type:"string" enum:"JobReportFormat"` +// The container for the noncurrent version transition. +type NoncurrentVersionTransition struct { + _ struct{} `type:"structure"` - // An optional prefix to describe where in the specified bucket the job-completion - // report will be stored. Amazon S3 will store the job-completion report at - // /job-/report.json. - Prefix *string `min:"1" type:"string"` + // Specifies the number of days an object is noncurrent before Amazon S3 can + // perform the associated action. For information about the noncurrent days + // calculations, see How Amazon S3 Calculates How Long an Object Has Been Noncurrent + // (https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) + // in the Amazon Simple Storage Service Developer Guide. + NoncurrentDays *int64 `type:"integer"` - // Indicates whether the job-completion report will include details of all tasks - // or only failed tasks. - ReportScope *string `type:"string" enum:"JobReportScope"` + // The class of storage used to store the object. + StorageClass *string `type:"string" enum:"TransitionStorageClass"` } // String returns the string representation -func (s JobReport) String() string { +func (s NoncurrentVersionTransition) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s JobReport) GoString() string { +func (s NoncurrentVersionTransition) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *JobReport) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "JobReport"} - if s.Bucket != nil && len(*s.Bucket) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) - } - if s.Enabled == nil { - invalidParams.Add(request.NewErrParamRequired("Enabled")) - } - if s.Prefix != nil && len(*s.Prefix) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Prefix", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetNoncurrentDays sets the NoncurrentDays field's value. +func (s *NoncurrentVersionTransition) SetNoncurrentDays(v int64) *NoncurrentVersionTransition { + s.NoncurrentDays = &v + return s } -// SetBucket sets the Bucket field's value. -func (s *JobReport) SetBucket(v string) *JobReport { - s.Bucket = &v +// SetStorageClass sets the StorageClass field's value. +func (s *NoncurrentVersionTransition) SetStorageClass(v string) *NoncurrentVersionTransition { + s.StorageClass = &v return s } -// SetEnabled sets the Enabled field's value. -func (s *JobReport) SetEnabled(v bool) *JobReport { - s.Enabled = &v - return s +// Indicates whether this access point policy is public. For more information +// about how Amazon S3 evaluates policies to determine whether they are public, +// see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) +// in the Amazon Simple Storage Service Developer Guide. +type PolicyStatus struct { + _ struct{} `type:"structure"` + + IsPublic *bool `locationName:"IsPublic" type:"boolean"` } -// SetFormat sets the Format field's value. -func (s *JobReport) SetFormat(v string) *JobReport { - s.Format = &v - return s +// String returns the string representation +func (s PolicyStatus) String() string { + return awsutil.Prettify(s) } -// SetPrefix sets the Prefix field's value. -func (s *JobReport) SetPrefix(v string) *JobReport { - s.Prefix = &v - return s +// GoString returns the string representation +func (s PolicyStatus) GoString() string { + return s.String() } -// SetReportScope sets the ReportScope field's value. -func (s *JobReport) SetReportScope(v string) *JobReport { - s.ReportScope = &v +// SetIsPublic sets the IsPublic field's value. +func (s *PolicyStatus) SetIsPublic(v bool) *PolicyStatus { + s.IsPublic = &v return s } -// Contains the configuration parameters for a Lambda Invoke operation. -type LambdaInvokeOperation struct { +// The PublicAccessBlock configuration that you want to apply to this Amazon +// S3 bucket. You can enable the configuration options in any combination. For +// more information about when Amazon S3 considers a bucket or object public, +// see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) +// in the Amazon Simple Storage Service Developer Guide. +// +// This is not supported for Amazon S3 on Outposts. +type PublicAccessBlockConfiguration struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) for the AWS Lambda function that the specified - // job will invoke for each object in the manifest. - FunctionArn *string `min:"1" type:"string"` + // Specifies whether Amazon S3 should block public access control lists (ACLs) + // for buckets in this account. Setting this element to TRUE causes the following + // behavior: + // + // * PUT Bucket acl and PUT Object acl calls fail if the specified ACL is + // public. + // + // * PUT Object calls fail if the request includes a public ACL. + // + // * PUT Bucket calls fail if the request includes a public ACL. + // + // Enabling this setting doesn't affect existing policies or ACLs. + // + // This is not supported for Amazon S3 on Outposts. + BlockPublicAcls *bool `locationName:"BlockPublicAcls" type:"boolean"` + + // Specifies whether Amazon S3 should block public bucket policies for buckets + // in this account. Setting this element to TRUE causes Amazon S3 to reject + // calls to PUT Bucket policy if the specified bucket policy allows public access. + // + // Enabling this setting doesn't affect existing bucket policies. + // + // This is not supported for Amazon S3 on Outposts. + BlockPublicPolicy *bool `locationName:"BlockPublicPolicy" type:"boolean"` + + // Specifies whether Amazon S3 should ignore public ACLs for buckets in this + // account. Setting this element to TRUE causes Amazon S3 to ignore all public + // ACLs on buckets in this account and any objects that they contain. + // + // Enabling this setting doesn't affect the persistence of any existing ACLs + // and doesn't prevent new public ACLs from being set. + // + // This is not supported for Amazon S3 on Outposts. + IgnorePublicAcls *bool `locationName:"IgnorePublicAcls" type:"boolean"` + + // Specifies whether Amazon S3 should restrict public bucket policies for buckets + // in this account. Setting this element to TRUE restricts access to buckets + // with public policies to only AWS services and authorized users within this + // account. + // + // Enabling this setting doesn't affect previously stored bucket policies, except + // that public and cross-account access within any public bucket policy, including + // non-public delegation to specific accounts, is blocked. + // + // This is not supported for Amazon S3 on Outposts. + RestrictPublicBuckets *bool `locationName:"RestrictPublicBuckets" type:"boolean"` } // String returns the string representation -func (s LambdaInvokeOperation) String() string { +func (s PublicAccessBlockConfiguration) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s LambdaInvokeOperation) GoString() string { +func (s PublicAccessBlockConfiguration) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *LambdaInvokeOperation) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "LambdaInvokeOperation"} - if s.FunctionArn != nil && len(*s.FunctionArn) < 1 { - invalidParams.Add(request.NewErrParamMinLen("FunctionArn", 1)) - } +// SetBlockPublicAcls sets the BlockPublicAcls field's value. +func (s *PublicAccessBlockConfiguration) SetBlockPublicAcls(v bool) *PublicAccessBlockConfiguration { + s.BlockPublicAcls = &v + return s +} - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetBlockPublicPolicy sets the BlockPublicPolicy field's value. +func (s *PublicAccessBlockConfiguration) SetBlockPublicPolicy(v bool) *PublicAccessBlockConfiguration { + s.BlockPublicPolicy = &v + return s } -// SetFunctionArn sets the FunctionArn field's value. -func (s *LambdaInvokeOperation) SetFunctionArn(v string) *LambdaInvokeOperation { - s.FunctionArn = &v +// SetIgnorePublicAcls sets the IgnorePublicAcls field's value. +func (s *PublicAccessBlockConfiguration) SetIgnorePublicAcls(v bool) *PublicAccessBlockConfiguration { + s.IgnorePublicAcls = &v return s } -type ListAccessPointsInput struct { - _ struct{} `locationName:"ListAccessPointsRequest" type:"structure"` +// SetRestrictPublicBuckets sets the RestrictPublicBuckets field's value. +func (s *PublicAccessBlockConfiguration) SetRestrictPublicBuckets(v bool) *PublicAccessBlockConfiguration { + s.RestrictPublicBuckets = &v + return s +} - // The AWS account ID for owner of the bucket whose access points you want to - // list. +type PutAccessPointPolicyInput struct { + _ struct{} `locationName:"PutAccessPointPolicyRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` + + // The AWS account ID for owner of the bucket associated with the specified + // access point. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The name of the bucket whose associated access points you want to list. - Bucket *string `location:"querystring" locationName:"bucket" min:"3" type:"string"` - - // The maximum number of access points that you want to include in the list. - // If the specified bucket has more than this number of access points, then - // the response will include a continuation token in the NextToken field that - // you can use to retrieve the next page of access points. - MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + // The name of the access point that you want to associate with the specified + // policy. + // + // For Amazon S3 on Outposts specify the ARN of the access point accessed in + // the format arn:aws:s3-outposts:::outpost//accesspoint/. + // For example, to access the access point reports-ap through outpost my-outpost + // owned by account 123456789012 in Region us-west-2, use the URL encoding of + // arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/accesspoint/reports-ap. + // The value must be URL encoded. + // + // Name is a required field + Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` - // A continuation token. If a previous call to ListAccessPoints returned a continuation - // token in the NextToken field, then providing that value here causes Amazon - // S3 to retrieve the next page of results. - NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` + // The policy that you want to apply to the specified access point. For more + // information about access point policies, see Managing Data Access with Amazon + // S3 Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points.html) + // in the Amazon Simple Storage Service Developer Guide. + // + // Policy is a required field + Policy *string `type:"string" required:"true"` } // String returns the string representation -func (s ListAccessPointsInput) String() string { +func (s PutAccessPointPolicyInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s ListAccessPointsInput) GoString() string { +func (s PutAccessPointPolicyInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *ListAccessPointsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListAccessPointsInput"} +func (s *PutAccessPointPolicyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutAccessPointPolicyInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.Bucket != nil && len(*s.Bucket) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) } - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + if s.Name != nil && len(*s.Name) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Name", 3)) } - if s.NextToken != nil && len(*s.NextToken) < 1 { - invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + if s.Policy == nil { + invalidParams.Add(request.NewErrParamRequired("Policy")) } if invalidParams.Len() > 0 { @@ -3903,116 +7904,89 @@ func (s *ListAccessPointsInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *ListAccessPointsInput) SetAccountId(v string) *ListAccessPointsInput { +func (s *PutAccessPointPolicyInput) SetAccountId(v string) *PutAccessPointPolicyInput { s.AccountId = &v return s } -// SetBucket sets the Bucket field's value. -func (s *ListAccessPointsInput) SetBucket(v string) *ListAccessPointsInput { - s.Bucket = &v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *ListAccessPointsInput) SetMaxResults(v int64) *ListAccessPointsInput { - s.MaxResults = &v +// SetName sets the Name field's value. +func (s *PutAccessPointPolicyInput) SetName(v string) *PutAccessPointPolicyInput { + s.Name = &v return s } -// SetNextToken sets the NextToken field's value. -func (s *ListAccessPointsInput) SetNextToken(v string) *ListAccessPointsInput { - s.NextToken = &v +// SetPolicy sets the Policy field's value. +func (s *PutAccessPointPolicyInput) SetPolicy(v string) *PutAccessPointPolicyInput { + s.Policy = &v return s } -func (s *ListAccessPointsInput) hostLabels() map[string]string { +func (s *PutAccessPointPolicyInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -type ListAccessPointsOutput struct { +type PutAccessPointPolicyOutput struct { _ struct{} `type:"structure"` - - // Contains identification and configuration information for one or more access - // points associated with the specified bucket. - AccessPointList []*AccessPoint `locationNameList:"AccessPoint" type:"list"` - - // If the specified bucket has more access points than can be returned in one - // call to this API, then this field contains a continuation token that you - // can provide in subsequent calls to this API to retrieve additional access - // points. - NextToken *string `min:"1" type:"string"` } // String returns the string representation -func (s ListAccessPointsOutput) String() string { +func (s PutAccessPointPolicyOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s ListAccessPointsOutput) GoString() string { +func (s PutAccessPointPolicyOutput) GoString() string { return s.String() } -// SetAccessPointList sets the AccessPointList field's value. -func (s *ListAccessPointsOutput) SetAccessPointList(v []*AccessPoint) *ListAccessPointsOutput { - s.AccessPointList = v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListAccessPointsOutput) SetNextToken(v string) *ListAccessPointsOutput { - s.NextToken = &v - return s -} - -type ListJobsInput struct { - _ struct{} `locationName:"ListJobsRequest" type:"structure"` +type PutBucketLifecycleConfigurationInput struct { + _ struct{} `locationName:"PutBucketLifecycleConfigurationRequest" type:"structure" payload:"LifecycleConfiguration"` + // The AWS account ID of the Outposts bucket. + // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The List Jobs request returns jobs that match the statuses listed in this - // element. - JobStatuses []*string `location:"querystring" locationName:"jobStatuses" type:"list"` - - // The maximum number of jobs that Amazon S3 will include in the List Jobs response. - // If there are more jobs than this number, the response will include a pagination - // token in the NextToken field to enable you to retrieve the next page of results. - MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + // The name of the bucket for which to set the configuration. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` - // A pagination token to request the next page of results. Use the token that - // Amazon S3 returned in the NextToken element of the ListJobsResult from the - // previous List Jobs request. - NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` + // Container for lifecycle rules. You can add as many as 1,000 rules. + LifecycleConfiguration *LifecycleConfiguration `locationName:"LifecycleConfiguration" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` } // String returns the string representation -func (s ListJobsInput) String() string { +func (s PutBucketLifecycleConfigurationInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s ListJobsInput) GoString() string { +func (s PutBucketLifecycleConfigurationInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *ListJobsInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListJobsInput"} +func (s *PutBucketLifecycleConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutBucketLifecycleConfigurationInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.MaxResults != nil && *s.MaxResults < 1 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) } - if s.NextToken != nil && len(*s.NextToken) < 1 { - invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) + } + if s.LifecycleConfiguration != nil { + if err := s.LifecycleConfiguration.Validate(); err != nil { + invalidParams.AddNested("LifecycleConfiguration", err.(request.ErrInvalidParams)) + } } if invalidParams.Len() > 0 { @@ -4022,228 +7996,276 @@ func (s *ListJobsInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *ListJobsInput) SetAccountId(v string) *ListJobsInput { +func (s *PutBucketLifecycleConfigurationInput) SetAccountId(v string) *PutBucketLifecycleConfigurationInput { s.AccountId = &v return s } -// SetJobStatuses sets the JobStatuses field's value. -func (s *ListJobsInput) SetJobStatuses(v []*string) *ListJobsInput { - s.JobStatuses = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *ListJobsInput) SetMaxResults(v int64) *ListJobsInput { - s.MaxResults = &v +// SetBucket sets the Bucket field's value. +func (s *PutBucketLifecycleConfigurationInput) SetBucket(v string) *PutBucketLifecycleConfigurationInput { + s.Bucket = &v return s } -// SetNextToken sets the NextToken field's value. -func (s *ListJobsInput) SetNextToken(v string) *ListJobsInput { - s.NextToken = &v +// SetLifecycleConfiguration sets the LifecycleConfiguration field's value. +func (s *PutBucketLifecycleConfigurationInput) SetLifecycleConfiguration(v *LifecycleConfiguration) *PutBucketLifecycleConfigurationInput { + s.LifecycleConfiguration = v return s } -func (s *ListJobsInput) hostLabels() map[string]string { +func (s *PutBucketLifecycleConfigurationInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -type ListJobsOutput struct { - _ struct{} `type:"structure"` +func (s *PutBucketLifecycleConfigurationInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) +} - // The list of current jobs and jobs that have ended within the last 30 days. - Jobs []*JobListDescriptor `type:"list"` +func (s *PutBucketLifecycleConfigurationInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) +} - // If the List Jobs request produced more than the maximum number of results, - // you can pass this value into a subsequent List Jobs request in order to retrieve - // the next page of results. - NextToken *string `min:"1" type:"string"` +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutBucketLifecycleConfigurationInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + +func (s *PutBucketLifecycleConfigurationInput) updateAccountID(accountId string) error { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + } else if *s.AccountId != accountId { + return fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil +} + +type PutBucketLifecycleConfigurationOutput struct { + _ struct{} `type:"structure"` } // String returns the string representation -func (s ListJobsOutput) String() string { +func (s PutBucketLifecycleConfigurationOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s ListJobsOutput) GoString() string { +func (s PutBucketLifecycleConfigurationOutput) GoString() string { return s.String() } -// SetJobs sets the Jobs field's value. -func (s *ListJobsOutput) SetJobs(v []*JobListDescriptor) *ListJobsOutput { - s.Jobs = v - return s -} +type PutBucketPolicyInput struct { + _ struct{} `locationName:"PutBucketPolicyRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` -// SetNextToken sets the NextToken field's value. -func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput { - s.NextToken = &v - return s -} + // The AWS account ID of the Outposts bucket. + // + // AccountId is a required field + AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` -// Indicates whether this access point policy is public. For more information -// about how Amazon S3 evaluates policies to determine whether they are public, -// see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) -// in the Amazon Simple Storage Service Developer Guide. -type PolicyStatus struct { - _ struct{} `type:"structure"` + // The ARN of the bucket. + // + // For Amazon S3 on Outposts specify the ARN of the bucket accessed in the format + // arn:aws:s3-outposts:::outpost//bucket/. + // For example, to access the bucket reports through outpost my-outpost owned + // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. + // The value must be URL encoded. + // + // Bucket is a required field + Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` - IsPublic *bool `locationName:"IsPublic" type:"boolean"` + // Set this parameter to true to confirm that you want to remove your permissions + // to change this bucket policy in the future. + // + // This is not supported by Amazon S3 on Outposts buckets. + ConfirmRemoveSelfBucketAccess *bool `location:"header" locationName:"x-amz-confirm-remove-self-bucket-access" type:"boolean"` + + // The bucket policy as a JSON document. + // + // Policy is a required field + Policy *string `type:"string" required:"true"` } // String returns the string representation -func (s PolicyStatus) String() string { +func (s PutBucketPolicyInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s PolicyStatus) GoString() string { +func (s PutBucketPolicyInput) GoString() string { return s.String() } -// SetIsPublic sets the IsPublic field's value. -func (s *PolicyStatus) SetIsPublic(v bool) *PolicyStatus { - s.IsPublic = &v - return s +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutBucketPolicyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutBucketPolicyInput"} + if s.AccountId == nil { + invalidParams.Add(request.NewErrParamRequired("AccountId")) + } + if s.AccountId != nil && len(*s.AccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) + } + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) + } + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) + } + if s.Policy == nil { + invalidParams.Add(request.NewErrParamRequired("Policy")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// The PublicAccessBlock configuration that you want to apply to this Amazon -// S3 bucket. You can enable the configuration options in any combination. For -// more information about when Amazon S3 considers a bucket or object public, -// see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status) -// in the Amazon Simple Storage Service Developer Guide. -type PublicAccessBlockConfiguration struct { - _ struct{} `type:"structure"` +// SetAccountId sets the AccountId field's value. +func (s *PutBucketPolicyInput) SetAccountId(v string) *PutBucketPolicyInput { + s.AccountId = &v + return s +} - // Specifies whether Amazon S3 should block public access control lists (ACLs) - // for buckets in this account. Setting this element to TRUE causes the following - // behavior: - // - // * PUT Bucket acl and PUT Object acl calls fail if the specified ACL is - // public. - // - // * PUT Object calls fail if the request includes a public ACL. - // - // * PUT Bucket calls fail if the request includes a public ACL. - // - // Enabling this setting doesn't affect existing policies or ACLs. - BlockPublicAcls *bool `locationName:"BlockPublicAcls" type:"boolean"` +// SetBucket sets the Bucket field's value. +func (s *PutBucketPolicyInput) SetBucket(v string) *PutBucketPolicyInput { + s.Bucket = &v + return s +} - // Specifies whether Amazon S3 should block public bucket policies for buckets - // in this account. Setting this element to TRUE causes Amazon S3 to reject - // calls to PUT Bucket policy if the specified bucket policy allows public access. - // - // Enabling this setting doesn't affect existing bucket policies. - BlockPublicPolicy *bool `locationName:"BlockPublicPolicy" type:"boolean"` +// SetConfirmRemoveSelfBucketAccess sets the ConfirmRemoveSelfBucketAccess field's value. +func (s *PutBucketPolicyInput) SetConfirmRemoveSelfBucketAccess(v bool) *PutBucketPolicyInput { + s.ConfirmRemoveSelfBucketAccess = &v + return s +} - // Specifies whether Amazon S3 should ignore public ACLs for buckets in this - // account. Setting this element to TRUE causes Amazon S3 to ignore all public - // ACLs on buckets in this account and any objects that they contain. - // - // Enabling this setting doesn't affect the persistence of any existing ACLs - // and doesn't prevent new public ACLs from being set. - IgnorePublicAcls *bool `locationName:"IgnorePublicAcls" type:"boolean"` +// SetPolicy sets the Policy field's value. +func (s *PutBucketPolicyInput) SetPolicy(v string) *PutBucketPolicyInput { + s.Policy = &v + return s +} - // Specifies whether Amazon S3 should restrict public bucket policies for buckets - // in this account. Setting this element to TRUE restricts access to buckets - // with public policies to only AWS services and authorized users within this - // account. - // - // Enabling this setting doesn't affect previously stored bucket policies, except - // that public and cross-account access within any public bucket policy, including - // non-public delegation to specific accounts, is blocked. - RestrictPublicBuckets *bool `locationName:"RestrictPublicBuckets" type:"boolean"` +func (s *PutBucketPolicyInput) hostLabels() map[string]string { + return map[string]string{ + "AccountId": aws.StringValue(s.AccountId), + } } -// String returns the string representation -func (s PublicAccessBlockConfiguration) String() string { - return awsutil.Prettify(s) +func (s *PutBucketPolicyInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) +} + +func (s *PutBucketPolicyInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) } -// GoString returns the string representation -func (s PublicAccessBlockConfiguration) GoString() string { - return s.String() +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutBucketPolicyInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil } -// SetBlockPublicAcls sets the BlockPublicAcls field's value. -func (s *PublicAccessBlockConfiguration) SetBlockPublicAcls(v bool) *PublicAccessBlockConfiguration { - s.BlockPublicAcls = &v - return s +func (s *PutBucketPolicyInput) updateAccountID(accountId string) error { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + } else if *s.AccountId != accountId { + return fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil } -// SetBlockPublicPolicy sets the BlockPublicPolicy field's value. -func (s *PublicAccessBlockConfiguration) SetBlockPublicPolicy(v bool) *PublicAccessBlockConfiguration { - s.BlockPublicPolicy = &v - return s +type PutBucketPolicyOutput struct { + _ struct{} `type:"structure"` } -// SetIgnorePublicAcls sets the IgnorePublicAcls field's value. -func (s *PublicAccessBlockConfiguration) SetIgnorePublicAcls(v bool) *PublicAccessBlockConfiguration { - s.IgnorePublicAcls = &v - return s +// String returns the string representation +func (s PutBucketPolicyOutput) String() string { + return awsutil.Prettify(s) } -// SetRestrictPublicBuckets sets the RestrictPublicBuckets field's value. -func (s *PublicAccessBlockConfiguration) SetRestrictPublicBuckets(v bool) *PublicAccessBlockConfiguration { - s.RestrictPublicBuckets = &v - return s +// GoString returns the string representation +func (s PutBucketPolicyOutput) GoString() string { + return s.String() } -type PutAccessPointPolicyInput struct { - _ struct{} `locationName:"PutAccessPointPolicyRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` +type PutBucketTaggingInput struct { + _ struct{} `locationName:"PutBucketTaggingRequest" type:"structure" payload:"Tagging"` - // The AWS account ID for owner of the bucket associated with the specified - // access point. + // The AWS account ID of the Outposts bucket. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The name of the access point that you want to associate with the specified - // policy. + // The Amazon Resource Name (ARN) of the bucket. // - // Name is a required field - Name *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` - - // The policy that you want to apply to the specified access point. For more - // information about access point policies, see Managing Data Access with Amazon - // S3 Access Points (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points.html) - // in the Amazon Simple Storage Service Developer Guide. + // For Amazon S3 on Outposts specify the ARN of the bucket accessed in the format + // arn:aws:s3-outposts:::outpost//bucket/. + // For example, to access the bucket reports through outpost my-outpost owned + // by account 123456789012 in Region us-west-2, use the URL encoding of arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/bucket/reports. + // The value must be URL encoded. // - // Policy is a required field - Policy *string `type:"string" required:"true"` + // Bucket is a required field + Bucket *string `location:"uri" locationName:"name" min:"3" type:"string" required:"true"` + + // Tagging is a required field + Tagging *Tagging `locationName:"Tagging" type:"structure" required:"true" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` } // String returns the string representation -func (s PutAccessPointPolicyInput) String() string { +func (s PutBucketTaggingInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s PutAccessPointPolicyInput) GoString() string { +func (s PutBucketTaggingInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *PutAccessPointPolicyInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "PutAccessPointPolicyInput"} +func (s *PutBucketTaggingInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutBucketTaggingInput"} if s.AccountId == nil { invalidParams.Add(request.NewErrParamRequired("AccountId")) } if s.AccountId != nil && len(*s.AccountId) < 1 { invalidParams.Add(request.NewErrParamMinLen("AccountId", 1)) } - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) + if s.Bucket == nil { + invalidParams.Add(request.NewErrParamRequired("Bucket")) } - if s.Name != nil && len(*s.Name) < 3 { - invalidParams.Add(request.NewErrParamMinLen("Name", 3)) + if s.Bucket != nil && len(*s.Bucket) < 3 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 3)) } - if s.Policy == nil { - invalidParams.Add(request.NewErrParamRequired("Policy")) + if s.Tagging == nil { + invalidParams.Add(request.NewErrParamRequired("Tagging")) + } + if s.Tagging != nil { + if err := s.Tagging.Validate(); err != nil { + invalidParams.AddNested("Tagging", err.(request.ErrInvalidParams)) + } } if invalidParams.Len() > 0 { @@ -4253,57 +8275,91 @@ func (s *PutAccessPointPolicyInput) Validate() error { } // SetAccountId sets the AccountId field's value. -func (s *PutAccessPointPolicyInput) SetAccountId(v string) *PutAccessPointPolicyInput { +func (s *PutBucketTaggingInput) SetAccountId(v string) *PutBucketTaggingInput { s.AccountId = &v return s } -// SetName sets the Name field's value. -func (s *PutAccessPointPolicyInput) SetName(v string) *PutAccessPointPolicyInput { - s.Name = &v +// SetBucket sets the Bucket field's value. +func (s *PutBucketTaggingInput) SetBucket(v string) *PutBucketTaggingInput { + s.Bucket = &v return s } -// SetPolicy sets the Policy field's value. -func (s *PutAccessPointPolicyInput) SetPolicy(v string) *PutAccessPointPolicyInput { - s.Policy = &v +// SetTagging sets the Tagging field's value. +func (s *PutBucketTaggingInput) SetTagging(v *Tagging) *PutBucketTaggingInput { + s.Tagging = v return s } -func (s *PutAccessPointPolicyInput) hostLabels() map[string]string { +func (s *PutBucketTaggingInput) hostLabels() map[string]string { return map[string]string{ "AccountId": aws.StringValue(s.AccountId), } } -type PutAccessPointPolicyOutput struct { +func (s *PutBucketTaggingInput) getEndpointARN() (arn.Resource, error) { + if s.Bucket == nil { + return nil, fmt.Errorf("member Bucket is nil") + } + return parseEndpointARN(*s.Bucket) +} + +func (s *PutBucketTaggingInput) hasEndpointARN() bool { + if s.Bucket == nil { + return false + } + return arn.IsARN(*s.Bucket) +} + +// updateArnableField updates the value of the input field that +// takes an ARN as an input. This method is useful to backfill +// the parsed resource name from ARN into the input member. +func (s *PutBucketTaggingInput) updateArnableField(v string) error { + if s.Bucket == nil { + return fmt.Errorf("member Bucket is nil") + } + s.Bucket = aws.String(v) + return nil +} + +func (s *PutBucketTaggingInput) updateAccountID(accountId string) error { + if s.AccountId == nil { + s.AccountId = aws.String(accountId) + } else if *s.AccountId != accountId { + return fmt.Errorf("Account ID mismatch, the Account ID cannot be specified in an ARN and in the accountId field") + } + return nil +} + +type PutBucketTaggingOutput struct { _ struct{} `type:"structure"` } // String returns the string representation -func (s PutAccessPointPolicyOutput) String() string { +func (s PutBucketTaggingOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s PutAccessPointPolicyOutput) GoString() string { +func (s PutBucketTaggingOutput) GoString() string { return s.String() } type PutJobTaggingInput struct { _ struct{} `locationName:"PutJobTaggingRequest" type:"structure" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` - // The AWS account ID associated with the Amazon S3 Batch Operations job. + // The AWS account ID associated with the S3 Batch Operations job. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` - // The ID for the Amazon S3 Batch Operations job whose tags you want to replace. + // The ID for the S3 Batch Operations job whose tags you want to replace. // // JobId is a required field JobId *string `location:"uri" locationName:"id" min:"5" type:"string" required:"true"` - // The set of tags to associate with the Amazon S3 Batch Operations job. + // The set of tags to associate with the S3 Batch Operations job. // // Tags is a required field Tags []*S3Tag `type:"list" required:"true"` @@ -4395,14 +8451,14 @@ func (s PutJobTaggingOutput) GoString() string { type PutPublicAccessBlockInput struct { _ struct{} `locationName:"PutPublicAccessBlockRequest" type:"structure" payload:"PublicAccessBlockConfiguration"` - // The account ID for the Amazon Web Services account whose PublicAccessBlock - // configuration you want to set. + // The account ID for the AWS account whose PublicAccessBlock configuration + // you want to set. // // AccountId is a required field AccountId *string `location:"header" locationName:"x-amz-account-id" type:"string" required:"true"` // The PublicAccessBlock configuration that you want to apply to the specified - // Amazon Web Services account. + // AWS account. // // PublicAccessBlockConfiguration is a required field PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `locationName:"PublicAccessBlockConfiguration" type:"structure" required:"true" xmlURI:"http://awss3control.amazonaws.com/doc/2018-08-20/"` @@ -4469,6 +8525,68 @@ func (s PutPublicAccessBlockOutput) GoString() string { return s.String() } +// The container for the regional bucket. +type RegionalBucket struct { + _ struct{} `type:"structure"` + + // Bucket is a required field + Bucket *string `min:"3" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) for the regional bucket. + BucketArn *string `min:"4" type:"string"` + + // The creation date of the regional bucket + // + // CreationDate is a required field + CreationDate *time.Time `type:"timestamp" required:"true"` + + // The AWS Outposts ID of the regional bucket. + OutpostId *string `min:"1" type:"string"` + + // PublicAccessBlockEnabled is a required field + PublicAccessBlockEnabled *bool `type:"boolean" required:"true"` +} + +// String returns the string representation +func (s RegionalBucket) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RegionalBucket) GoString() string { + return s.String() +} + +// SetBucket sets the Bucket field's value. +func (s *RegionalBucket) SetBucket(v string) *RegionalBucket { + s.Bucket = &v + return s +} + +// SetBucketArn sets the BucketArn field's value. +func (s *RegionalBucket) SetBucketArn(v string) *RegionalBucket { + s.BucketArn = &v + return s +} + +// SetCreationDate sets the CreationDate field's value. +func (s *RegionalBucket) SetCreationDate(v time.Time) *RegionalBucket { + s.CreationDate = &v + return s +} + +// SetOutpostId sets the OutpostId field's value. +func (s *RegionalBucket) SetOutpostId(v string) *RegionalBucket { + s.OutpostId = &v + return s +} + +// SetPublicAccessBlockEnabled sets the PublicAccessBlockEnabled field's value. +func (s *RegionalBucket) SetPublicAccessBlockEnabled(v bool) *RegionalBucket { + s.PublicAccessBlockEnabled = &v + return s +} + type S3AccessControlList struct { _ struct{} `type:"structure"` @@ -4573,10 +8691,10 @@ func (s *S3AccessControlPolicy) SetCannedAccessControlList(v string) *S3AccessCo return s } -// Contains the configuration parameters for a PUT Copy object operation. Amazon -// S3 Batch Operations passes each value through to the underlying PUT Copy -// object API. For more information about the parameters for this operation, -// see PUT Object - Copy (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html). +// Contains the configuration parameters for a PUT Copy object operation. S3 +// Batch Operations passes each value through to the underlying PUT Copy object +// API. For more information about the parameters for this operation, see PUT +// Object - Copy (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html). type S3CopyObjectOperation struct { _ struct{} `type:"structure"` @@ -4592,15 +8710,15 @@ type S3CopyObjectOperation struct { NewObjectTagging []*S3Tag `type:"list"` - // The Legal Hold status to be applied to all objects in the Batch Operations + // The legal hold status to be applied to all objects in the Batch Operations // job. ObjectLockLegalHoldStatus *string `type:"string" enum:"S3ObjectLockLegalHoldStatus"` - // The Retention mode to be applied to all objects in the Batch Operations job. + // The retention mode to be applied to all objects in the Batch Operations job. ObjectLockMode *string `type:"string" enum:"S3ObjectLockMode"` - // The date when the applied Object Retention configuration will expire on all - // objects in the Batch Operations job. + // The date when the applied object retention configuration expires on all objects + // in the Batch Operations job. ObjectLockRetainUntilDate *time.Time `type:"timestamp"` RedirectLocation *string `min:"1" type:"string"` @@ -4871,9 +8989,9 @@ func (s *S3Grantee) SetTypeIdentifier(v string) *S3Grantee { } // Contains the configuration parameters for an Initiate Glacier Restore job. -// Amazon S3 Batch Operations passes each value through to the underlying POST -// Object restore API. For more information about the parameters for this operation, -// see Restoring Archives (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOSTrestore.html#RESTObjectPOSTrestore-restore-request). +// S3 Batch Operations passes each value through to the underlying POST Object +// restore API. For more information about the parameters for this operation, +// see RestoreObject (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOSTrestore.html#RESTObjectPOSTrestore-restore-request). type S3InitiateRestoreObjectOperation struct { _ struct{} `type:"structure"` @@ -4904,11 +9022,13 @@ func (s *S3InitiateRestoreObjectOperation) SetGlacierJobTier(v string) *S3Initia return s } +// Whether S3 Object Lock legal hold will be applied to objects in an S3 Batch +// Operations job. type S3ObjectLockLegalHold struct { _ struct{} `type:"structure"` - // The Legal Hold status to be applied to all objects in the Batch Operations - // job. + // The Object Lock legal hold status to be applied to all objects in the Batch + // Operations job. // // Status is a required field Status *string `type:"string" required:"true" enum:"S3ObjectLockLegalHoldStatus"` @@ -5119,14 +9239,21 @@ func (s *S3ObjectOwner) SetID(v string) *S3ObjectOwner { return s } +// Contains the S3 Object Lock retention mode to be applied to all objects in +// the S3 Batch Operations job. If you don't provide Mode and RetainUntilDate +// data types in your operation, you will remove the retention from your objects. +// For more information, see Using S3 Object Lock retention with S3 Batch Operations +// (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html) +// in the Amazon Simple Storage Service Developer Guide. type S3Retention struct { _ struct{} `type:"structure"` - // The Retention mode to be applied to all objects in the Batch Operations job. + // The Object Lock retention mode to be applied to all objects in the Batch + // Operations job. Mode *string `type:"string" enum:"S3ObjectLockRetentionMode"` - // The date when the applied Object Retention will expire on all objects in - // the Batch Operations job. + // The date when the applied Object Lock retention will expire on all objects + // set by the Batch Operations job. RetainUntilDate *time.Time `type:"timestamp"` } @@ -5152,10 +9279,10 @@ func (s *S3Retention) SetRetainUntilDate(v time.Time) *S3Retention { return s } -// Contains the configuration parameters for a Set Object ACL operation. Amazon -// S3 Batch Operations passes each value through to the underlying PUT Object -// acl API. For more information about the parameters for this operation, see -// PUT Object acl (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUTacl.html). +// Contains the configuration parameters for a Set Object ACL operation. S3 +// Batch Operations passes each value through to the underlying PUT Object acl +// API. For more information about the parameters for this operation, see PUT +// Object acl (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUTacl.html). type S3SetObjectAclOperation struct { _ struct{} `type:"structure"` @@ -5193,15 +9320,16 @@ func (s *S3SetObjectAclOperation) SetAccessControlPolicy(v *S3AccessControlPolic return s } -// Contains the configuration parameters for a Set Object Legal Hold operation. -// Amazon S3 Batch Operations passes each value through to the underlying PUT -// Object Legal Hold API. For more information about the parameters for this -// operation, see PUT Object Legal Hold (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.htmll#object-lock-legal-holds). +// Contains the configuration for an S3 Object Lock legal hold operation that +// an S3 Batch Operations job passes each object through to the underlying PutObjectLegalHold +// API. For more information, see Using S3 Object Lock legal hold with S3 Batch +// Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-legal-hold.html) +// in the Amazon Simple Storage Service Developer Guide. type S3SetObjectLegalHoldOperation struct { _ struct{} `type:"structure"` - // The Legal Hold contains the status to be applied to all objects in the Batch - // Operations job. + // Contains the Object Lock legal hold status to be applied to all objects in + // the Batch Operations job. // // LegalHold is a required field LegalHold *S3ObjectLockLegalHold `type:"structure" required:"true"` @@ -5241,19 +9369,22 @@ func (s *S3SetObjectLegalHoldOperation) SetLegalHold(v *S3ObjectLockLegalHold) * return s } -// Contains the configuration parameters for a Set Object Retention operation. -// Amazon S3 Batch Operations passes each value through to the underlying PUT -// Object Retention API. For more information about the parameters for this -// operation, see PUT Object Retention (https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html#object-lock-retention-modes). +// Contains the configuration parameters for the Object Lock retention action +// for an S3 Batch Operations job. Batch Operations passes each value through +// to the underlying PutObjectRetention API. For more information, see Using +// S3 Object Lock retention with S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html) +// in the Amazon Simple Storage Service Developer Guide. type S3SetObjectRetentionOperation struct { _ struct{} `type:"structure"` - // Indicates if the operation should be applied to objects in the Batch Operations - // job even if they have Governance-type Object Lock in place. + // Indicates if the action should be applied to objects in the Batch Operations + // job even if they have Object Lock GOVERNANCE type in place. BypassGovernanceRetention *bool `type:"boolean"` - // Amazon S3 object lock Retention contains the retention mode to be applied - // to all objects in the Batch Operations job. + // Contains the Object Lock retention mode to be applied to all objects in the + // Batch Operations job. For more information, see Using S3 Object Lock retention + // with S3 Batch Operations (https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-retention-date.html) + // in the Amazon Simple Storage Service Developer Guide. // // Retention is a required field Retention *S3Retention `type:"structure" required:"true"` @@ -5295,8 +9426,8 @@ func (s *S3SetObjectRetentionOperation) SetRetention(v *S3Retention) *S3SetObjec } // Contains the configuration parameters for a Set Object Tagging operation. -// Amazon S3 Batch Operations passes each value through to the underlying PUT -// Object tagging API. For more information about the parameters for this operation, +// S3 Batch Operations passes each value through to the underlying PUT Object +// tagging API. For more information about the parameters for this operation, // see PUT Object tagging (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUTtagging.html). type S3SetObjectTaggingOperation struct { _ struct{} `type:"structure"` @@ -5391,6 +9522,101 @@ func (s *S3Tag) SetValue(v string) *S3Tag { return s } +type Tagging struct { + _ struct{} `type:"structure"` + + // A collection for a set of tags. + // + // TagSet is a required field + TagSet []*S3Tag `type:"list" required:"true"` +} + +// String returns the string representation +func (s Tagging) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Tagging) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Tagging) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Tagging"} + if s.TagSet == nil { + invalidParams.Add(request.NewErrParamRequired("TagSet")) + } + if s.TagSet != nil { + for i, v := range s.TagSet { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagSet", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetTagSet sets the TagSet field's value. +func (s *Tagging) SetTagSet(v []*S3Tag) *Tagging { + s.TagSet = v + return s +} + +// Specifies when an object transitions to a specified storage class. For more +// information about Amazon S3 Lifecycle configuration rules, see Transitioning +// Objects Using Amazon S3 Lifecycle (https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html) +// in the Amazon Simple Storage Service Developer Guide. +type Transition struct { + _ struct{} `type:"structure"` + + // Indicates when objects are transitioned to the specified storage class. The + // date value must be in ISO 8601 format. The time is always midnight UTC. + Date *time.Time `type:"timestamp"` + + // Indicates the number of days after creation when objects are transitioned + // to the specified storage class. The value must be a positive integer. + Days *int64 `type:"integer"` + + // The storage class to which you want the object to transition. + StorageClass *string `type:"string" enum:"TransitionStorageClass"` +} + +// String returns the string representation +func (s Transition) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Transition) GoString() string { + return s.String() +} + +// SetDate sets the Date field's value. +func (s *Transition) SetDate(v time.Time) *Transition { + s.Date = &v + return s +} + +// SetDays sets the Days field's value. +func (s *Transition) SetDays(v int64) *Transition { + s.Days = &v + return s +} + +// SetStorageClass sets the StorageClass field's value. +func (s *Transition) SetStorageClass(v string) *Transition { + s.StorageClass = &v + return s +} + type UpdateJobPriorityInput struct { _ struct{} `locationName:"UpdateJobPriorityRequest" type:"structure"` @@ -5676,6 +9902,98 @@ func (s *VpcConfiguration) SetVpcId(v string) *VpcConfiguration { return s } +const ( + // BucketCannedACLPrivate is a BucketCannedACL enum value + BucketCannedACLPrivate = "private" + + // BucketCannedACLPublicRead is a BucketCannedACL enum value + BucketCannedACLPublicRead = "public-read" + + // BucketCannedACLPublicReadWrite is a BucketCannedACL enum value + BucketCannedACLPublicReadWrite = "public-read-write" + + // BucketCannedACLAuthenticatedRead is a BucketCannedACL enum value + BucketCannedACLAuthenticatedRead = "authenticated-read" +) + +// BucketCannedACL_Values returns all elements of the BucketCannedACL enum +func BucketCannedACL_Values() []string { + return []string{ + BucketCannedACLPrivate, + BucketCannedACLPublicRead, + BucketCannedACLPublicReadWrite, + BucketCannedACLAuthenticatedRead, + } +} + +const ( + // BucketLocationConstraintEu is a BucketLocationConstraint enum value + BucketLocationConstraintEu = "EU" + + // BucketLocationConstraintEuWest1 is a BucketLocationConstraint enum value + BucketLocationConstraintEuWest1 = "eu-west-1" + + // BucketLocationConstraintUsWest1 is a BucketLocationConstraint enum value + BucketLocationConstraintUsWest1 = "us-west-1" + + // BucketLocationConstraintUsWest2 is a BucketLocationConstraint enum value + BucketLocationConstraintUsWest2 = "us-west-2" + + // BucketLocationConstraintApSouth1 is a BucketLocationConstraint enum value + BucketLocationConstraintApSouth1 = "ap-south-1" + + // BucketLocationConstraintApSoutheast1 is a BucketLocationConstraint enum value + BucketLocationConstraintApSoutheast1 = "ap-southeast-1" + + // BucketLocationConstraintApSoutheast2 is a BucketLocationConstraint enum value + BucketLocationConstraintApSoutheast2 = "ap-southeast-2" + + // BucketLocationConstraintApNortheast1 is a BucketLocationConstraint enum value + BucketLocationConstraintApNortheast1 = "ap-northeast-1" + + // BucketLocationConstraintSaEast1 is a BucketLocationConstraint enum value + BucketLocationConstraintSaEast1 = "sa-east-1" + + // BucketLocationConstraintCnNorth1 is a BucketLocationConstraint enum value + BucketLocationConstraintCnNorth1 = "cn-north-1" + + // BucketLocationConstraintEuCentral1 is a BucketLocationConstraint enum value + BucketLocationConstraintEuCentral1 = "eu-central-1" +) + +// BucketLocationConstraint_Values returns all elements of the BucketLocationConstraint enum +func BucketLocationConstraint_Values() []string { + return []string{ + BucketLocationConstraintEu, + BucketLocationConstraintEuWest1, + BucketLocationConstraintUsWest1, + BucketLocationConstraintUsWest2, + BucketLocationConstraintApSouth1, + BucketLocationConstraintApSoutheast1, + BucketLocationConstraintApSoutheast2, + BucketLocationConstraintApNortheast1, + BucketLocationConstraintSaEast1, + BucketLocationConstraintCnNorth1, + BucketLocationConstraintEuCentral1, + } +} + +const ( + // ExpirationStatusEnabled is a ExpirationStatus enum value + ExpirationStatusEnabled = "Enabled" + + // ExpirationStatusDisabled is a ExpirationStatus enum value + ExpirationStatusDisabled = "Disabled" +) + +// ExpirationStatus_Values returns all elements of the ExpirationStatus enum +func ExpirationStatus_Values() []string { + return []string{ + ExpirationStatusEnabled, + ExpirationStatusDisabled, + } +} + const ( // JobManifestFieldNameIgnore is a JobManifestFieldName enum value JobManifestFieldNameIgnore = "Ignore" @@ -6083,3 +10401,31 @@ func S3StorageClass_Values() []string { S3StorageClassDeepArchive, } } + +const ( + // TransitionStorageClassGlacier is a TransitionStorageClass enum value + TransitionStorageClassGlacier = "GLACIER" + + // TransitionStorageClassStandardIa is a TransitionStorageClass enum value + TransitionStorageClassStandardIa = "STANDARD_IA" + + // TransitionStorageClassOnezoneIa is a TransitionStorageClass enum value + TransitionStorageClassOnezoneIa = "ONEZONE_IA" + + // TransitionStorageClassIntelligentTiering is a TransitionStorageClass enum value + TransitionStorageClassIntelligentTiering = "INTELLIGENT_TIERING" + + // TransitionStorageClassDeepArchive is a TransitionStorageClass enum value + TransitionStorageClassDeepArchive = "DEEP_ARCHIVE" +) + +// TransitionStorageClass_Values returns all elements of the TransitionStorageClass enum +func TransitionStorageClass_Values() []string { + return []string{ + TransitionStorageClassGlacier, + TransitionStorageClassStandardIa, + TransitionStorageClassOnezoneIa, + TransitionStorageClassIntelligentTiering, + TransitionStorageClassDeepArchive, + } +} diff --git a/service/s3control/customizations.go b/service/s3control/customizations.go index 6ea102095ca..e78c0706ac5 100644 --- a/service/s3control/customizations.go +++ b/service/s3control/customizations.go @@ -2,7 +2,9 @@ package s3control import ( "github.com/aws/aws-sdk-go/aws/client" - "github.com/aws/aws-sdk-go/internal/s3err" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/internal/s3shared/arn" + "github.com/aws/aws-sdk-go/internal/s3shared/s3err" ) func init() { @@ -10,5 +12,33 @@ func init() { } func defaultInitClientFn(c *client.Client) { + // Support building custom endpoints based on config + c.Handlers.Build.PushFrontNamed(request.NamedHandler{ + Name: "s3ControlEndpointHandler", + Fn: endpointHandler, + }) + + // S3 uses custom error unmarshaling logic c.Handlers.UnmarshalError.PushBackNamed(s3err.RequestFailureWrapperHandler()) } + +// endpointARNGetter is an accessor interface to grab the +// the field corresponding to an endpoint ARN input. +type endpointARNGetter interface { + getEndpointARN() (arn.Resource, error) + hasEndpointARN() bool + updateArnableField(string) error +} + +// endpointOutpostIDGetter is an accessor interface to grab the +// the field corresponding to an outpost ID input. +type endpointOutpostIDGetter interface { + getOutpostID() (string, error) + hasOutpostID() bool +} + +// accountIDValidator is an accessor interface to validate the +// account id member value and account id present in endpoint ARN. +type accountIDValidator interface { + updateAccountID(string) error +} diff --git a/service/s3control/endpoint.go b/service/s3control/endpoint.go new file mode 100644 index 00000000000..5da76221c70 --- /dev/null +++ b/service/s3control/endpoint.go @@ -0,0 +1,198 @@ +package s3control + +import ( + "fmt" + "strings" + + "github.com/aws/aws-sdk-go/aws" + awsarn "github.com/aws/aws-sdk-go/aws/arn" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/internal/s3shared" + "github.com/aws/aws-sdk-go/internal/s3shared/arn" +) + +const ( + // outpost id header + outpostIDHeader = "x-amz-outpost-id" + + // account id header + accountIDHeader = "x-amz-account-id" +) + +// Used by shapes with members decorated as endpoint ARN. +func parseEndpointARN(v string) (arn.Resource, error) { + return arn.ParseResource(v, resourceParser) +} + +func resourceParser(a awsarn.ARN) (arn.Resource, error) { + resParts := arn.SplitResource(a.Resource) + switch resParts[0] { + case "outpost": + return arn.ParseOutpostARNResource(a, resParts[1:]) + default: + return nil, arn.InvalidARNError{ARN: a, Reason: "unknown resource type"} + } +} + +func endpointHandler(req *request.Request) { + // For special case "CreateBucket" and "ListRegionalBuckets" operation + outpostIDEndpoint, ok := req.Params.(endpointOutpostIDGetter) + if ok && outpostIDEndpoint.hasOutpostID() { + outpostID, err := outpostIDEndpoint.getOutpostID() + if err != nil { + req.Error = fmt.Errorf("expected outpost ID to be supported, %v", err) + } + if len(strings.TrimSpace(outpostID)) == 0 { + return + } + updateRequestOutpostIDEndpoint(req) + return + } + + endpoint, ok := req.Params.(endpointARNGetter) + if !ok || !endpoint.hasEndpointARN() { + return + } + + resource, err := endpoint.getEndpointARN() + if err != nil { + req.Error = s3shared.NewInvalidARNError(nil, err) + return + } + + // Add account-id header for the request if not present. + // SDK must always send the x-amz-account-id header for all requests + // where an accountId has been extracted from an ARN or the accountId field modeled as a header. + if h := req.HTTPRequest.Header.Get(accountIDHeader); len(h) == 0 { + req.HTTPRequest.Header.Add(accountIDHeader, resource.GetARN().AccountID) + } + + switch tv := resource.(type) { + case arn.OutpostAccessPointARN: + // Add outpostID header + req.HTTPRequest.Header.Add(outpostIDHeader, tv.OutpostID) + + // update arnable field to resource value + endpoint.updateArnableField(tv.AccessPointName) + + // update request for outpost access point endpoint + err = updateRequestOutpostAccessPointEndpoint(req, tv) + if err != nil { + req.Error = err + } + case arn.OutpostBucketARN: + // Add outpostID header + req.HTTPRequest.Header.Add(outpostIDHeader, tv.OutpostID) + + // update arnable field to resource value + endpoint.updateArnableField(tv.BucketName) + + // update request for outpost bucket endpoint + err = updateRequestOutpostBucketEndpoint(req, tv) + if err != nil { + req.Error = err + } + default: + req.Error = s3shared.NewInvalidARNError(resource, nil) + } +} + +// updateRequestOutpostIDEndpoint is special customization to be applied for operations +// CreateBucket, ListRegionalBuckets which must resolve endpoint to s3-outposts.{region}.amazonaws.com +// with region as client region and signed by s3-control if an outpost id is provided. +func updateRequestOutpostIDEndpoint(request *request.Request) { + serviceEndpointLabel := "s3-outposts." + cfgRegion := aws.StringValue(request.Config.Region) + + // request url + request.HTTPRequest.URL.Host = serviceEndpointLabel + cfgRegion + ".amazonaws.com" + + // disable the host prefix for outpost access points + request.Config.DisableEndpointHostPrefix = aws.Bool(true) + + // signer redirection + request.ClientInfo.SigningName = "s3-outposts" + request.ClientInfo.SigningRegion = cfgRegion +} + +func updateRequestOutpostAccessPointEndpoint(req *request.Request, accessPoint arn.OutpostAccessPointARN) error { + // validate Outpost endpoint + if err := validateOutpostEndpoint(req, accessPoint); err != nil { + return err + } + + // disable the host prefix for outpost access points + req.Config.DisableEndpointHostPrefix = aws.Bool(true) + + if err := outpostAccessPointEndpointBuilder(accessPoint).build(req); err != nil { + return err + } + + return nil +} + +func updateRequestOutpostBucketEndpoint(req *request.Request, bucketResource arn.OutpostBucketARN) error { + // validate Outpost endpoint + if err := validateOutpostEndpoint(req, bucketResource); err != nil { + return err + } + + // disable the host prefix for outpost bucket. + req.Config.DisableEndpointHostPrefix = aws.Bool(true) + + if err := outpostBucketResourceEndpointBuilder(bucketResource).build(req); err != nil { + return err + } + + return nil +} + +// validate request resource for retrieving endpoint +func validateEndpointRequestResource(req *request.Request, resource arn.Resource) error { + resReq := s3shared.ResourceRequest{Request: req, Resource: resource} + + if resReq.IsCrossPartition() { + return s3shared.NewClientPartitionMismatchError(resource, + req.ClientInfo.PartitionID, aws.StringValue(req.Config.Region), nil) + } + + if !resReq.AllowCrossRegion() && resReq.IsCrossRegion() { + return s3shared.NewClientRegionMismatchError(resource, + req.ClientInfo.PartitionID, aws.StringValue(req.Config.Region), nil) + } + + if resReq.HasCustomEndpoint() { + return s3shared.NewInvalidARNWithCustomEndpointError(resource, nil) + } + + // Accelerate not supported + if aws.BoolValue(req.Config.S3UseAccelerate) { + return s3shared.NewClientConfiguredForAccelerateError(resource, + req.ClientInfo.PartitionID, aws.StringValue(req.Config.Region), nil) + } + return nil +} + +// validations for fetching outpost endpoint +func validateOutpostEndpoint(req *request.Request, resource arn.Resource) error { + resReq := s3shared.ResourceRequest{ + Request: req, + Resource: resource, + } + + if err := validateEndpointRequestResource(req, resource); err != nil { + return err + } + + // resource configured with FIPS as region is not supported by outposts + if resReq.ResourceConfiguredForFIPS() { + return s3shared.NewInvalidARNWithFIPSError(resource, nil) + } + + // DualStack not supported + if aws.BoolValue(req.Config.UseDualStack) { + return s3shared.NewClientConfiguredForDualStackError(resource, + req.ClientInfo.PartitionID, aws.StringValue(req.Config.Region), nil) + } + return nil +} diff --git a/service/s3control/endpoint_builder.go b/service/s3control/endpoint_builder.go new file mode 100644 index 00000000000..8998ad008cd --- /dev/null +++ b/service/s3control/endpoint_builder.go @@ -0,0 +1,152 @@ +package s3control + +import ( + "net/url" + "strings" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awserr" + "github.com/aws/aws-sdk-go/aws/endpoints" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/internal/s3shared" + "github.com/aws/aws-sdk-go/internal/s3shared/arn" + "github.com/aws/aws-sdk-go/private/protocol" +) + +const ( + accessPointPrefixLabel = "accesspoint" + accountIDPrefixLabel = "accountID" + + outpostPrefixLabel = "outpost" +) + +// outpostAccessPointEndpointBuilder represents the endpoint builder for outpost access point arn. +type outpostAccessPointEndpointBuilder arn.OutpostAccessPointARN + +// build builds an endpoint corresponding to the outpost access point arn. +// +// For building an endpoint from outpost access point arn, format used is: +// - Outpost access point endpoint format : s3-outposts.{region}.{dnsSuffix} +// - example : s3-outposts.us-west-2.amazonaws.com +// +// Outpost AccessPoint Endpoint request are signed using "s3-outposts" as signing name. +// +func (o outpostAccessPointEndpointBuilder) build(req *request.Request) error { + resolveRegion := o.Region + resolveService := o.Service + cfgRegion := aws.StringValue(req.Config.Region) + + if s3shared.IsFIPS(cfgRegion) && !aws.BoolValue(req.Config.S3UseARNRegion) { + return s3shared.NewInvalidARNWithFIPSError(o, nil) + } + + endpointsID := resolveService + if resolveService == "s3-outposts" { + endpointsID = "s3" + } + + endpoint, err := resolveRegionalEndpoint(req, resolveRegion, endpointsID) + if err != nil { + return s3shared.NewFailedToResolveEndpointError(o, + req.ClientInfo.PartitionID, resolveRegion, err) + } + + if err = updateRequestEndpoint(req, endpoint.URL); err != nil { + return err + } + + // add url host as s3-outposts + cfgHost := req.HTTPRequest.URL.Host + if strings.HasPrefix(cfgHost, endpointsID) { + req.HTTPRequest.URL.Host = resolveService + cfgHost[len(endpointsID):] + } + + // set the signing region, name to resolved names from ARN + redirectSigner(req, resolveService, resolveRegion) + + err = protocol.ValidateEndpointHost(req.Operation.Name, req.HTTPRequest.URL.Host) + if err != nil { + return s3shared.NewInvalidARNError(o, err) + } + + return nil +} + +func (o outpostAccessPointEndpointBuilder) hostPrefixLabelValues() map[string]string { + return map[string]string{ + accessPointPrefixLabel: o.AccessPointName, + accountIDPrefixLabel: o.AccountID, + outpostPrefixLabel: o.OutpostID, + } +} + +// outpostBucketResourceEndpointBuilder represents the endpoint builder for outpost bucket resource arn +type outpostBucketResourceEndpointBuilder arn.OutpostBucketARN + +// build builds the endpoint for corresponding outpost bucket arn +// +// For building an endpoint from outpost bucket arn, format used is: +// - Outpost bucket arn endpoint format : s3-outposts.{region}.{dnsSuffix} +// - example : s3-outposts.us-west-2.amazonaws.com +// +// Outpost bucket arn endpoint request are signed using "s3-outposts" as signing name +// +func (o outpostBucketResourceEndpointBuilder) build(req *request.Request) error { + resolveService := arn.OutpostBucketARN(o).Service + resolveRegion := arn.OutpostBucketARN(o).Region + cfgRegion := aws.StringValue(req.Config.Region) + + // Outpost bucket resource uses `s3-control` as serviceEndpointLabel + endpointsID := "s3-control" + + endpoint, err := resolveRegionalEndpoint(req, resolveRegion, endpointsID) + if err != nil { + return s3shared.NewFailedToResolveEndpointError(arn.OutpostBucketARN(o), + req.ClientInfo.PartitionID, cfgRegion, err) + } + + if err = updateRequestEndpoint(req, endpoint.URL); err != nil { + return err + } + + // add url host as s3-outposts + cfgHost := req.HTTPRequest.URL.Host + if strings.HasPrefix(cfgHost, endpointsID) { + req.HTTPRequest.URL.Host = resolveService + cfgHost[len(endpointsID):] + } + + // signer redirection + redirectSigner(req, resolveService, resolveRegion) + + err = protocol.ValidateEndpointHost(req.Operation.Name, req.HTTPRequest.URL.Host) + if err != nil { + return s3shared.NewInvalidARNError(arn.OutpostBucketARN(o), err) + } + return nil +} + +func resolveRegionalEndpoint(r *request.Request, region string, endpointsID string) (endpoints.ResolvedEndpoint, error) { + return r.Config.EndpointResolver.EndpointFor(endpointsID, region, func(opts *endpoints.Options) { + opts.DisableSSL = aws.BoolValue(r.Config.DisableSSL) + opts.UseDualStack = aws.BoolValue(r.Config.UseDualStack) + opts.S3UsEast1RegionalEndpoint = endpoints.RegionalS3UsEast1Endpoint + }) +} + +func updateRequestEndpoint(r *request.Request, endpoint string) (err error) { + endpoint = endpoints.AddScheme(endpoint, aws.BoolValue(r.Config.DisableSSL)) + + r.HTTPRequest.URL, err = url.Parse(endpoint + r.Operation.HTTPPath) + if err != nil { + return awserr.New(request.ErrCodeSerialization, + "failed to parse endpoint URL", err) + } + + return nil +} + +// redirectSigner sets signing name, signing region for a request +func redirectSigner(req *request.Request, signingName string, signingRegion string) { + req.ClientInfo.SigningName = signingName + req.ClientInfo.SigningRegion = signingRegion +} diff --git a/service/s3control/endpoint_test.go b/service/s3control/endpoint_test.go new file mode 100644 index 00000000000..254432a1379 --- /dev/null +++ b/service/s3control/endpoint_test.go @@ -0,0 +1,508 @@ +// +build go1.7 + +package s3control + +import ( + "bytes" + "fmt" + "io/ioutil" + "net/http" + "strings" + "testing" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/endpoints" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/awstesting/unit" +) + +type testParams struct { + bucket string + config *aws.Config + expectedEndpoint string + expectedSigningName string + expectedSigningRegion string + expectedHeaderForOutpostID string + expectedHeaderForAccountID bool + expectedErr string +} + +// Test endpoint from outpost access point +func TestEndpoint_OutpostAccessPointARN(t *testing.T) { + cases := map[string]testParams{ + "Outpost AccessPoint with no S3UseARNRegion flag set": { + bucket: "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + config: &aws.Config{ + Region: aws.String("us-west-2"), + }, + expectedEndpoint: "https://s3-outposts.us-west-2.amazonaws.com", + expectedSigningName: "s3-outposts", + expectedSigningRegion: "us-west-2", + expectedHeaderForAccountID: true, + expectedHeaderForOutpostID: "op-01234567890123456", + }, + "Outpost AccessPoint Cross-Region Enabled": { + bucket: "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + config: &aws.Config{ + Region: aws.String("us-west-2"), + S3UseARNRegion: aws.Bool(true), + }, + expectedEndpoint: "https://s3-outposts.us-east-1.amazonaws.com", + expectedSigningName: "s3-outposts", + expectedSigningRegion: "us-east-1", + expectedHeaderForAccountID: true, + expectedHeaderForOutpostID: "op-01234567890123456", + }, + "Outpost AccessPoint Cross-Region Disabled": { + bucket: "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + config: &aws.Config{ + Region: aws.String("us-west-2"), + }, + expectedErr: "client region does not match provided ARN region", + }, + "Outpost AccessPoint other partition": { + bucket: "arn:aws-cn:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + config: &aws.Config{ + Region: aws.String("us-west-2"), + S3UseARNRegion: aws.Bool(true), + }, + expectedErr: "ConfigurationError: client partition does not match provided ARN partition", + }, + "Outpost AccessPoint us-gov region": { + bucket: "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + config: &aws.Config{ + Region: aws.String("us-gov-east-1"), + S3UseARNRegion: aws.Bool(true), + }, + expectedEndpoint: "https://s3-outposts.us-gov-east-1.amazonaws.com", + expectedSigningName: "s3-outposts", + expectedSigningRegion: "us-gov-east-1", + expectedHeaderForAccountID: true, + expectedHeaderForOutpostID: "op-01234567890123456", + }, + "Outpost AccessPoint with client region as Fips": { + bucket: "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + config: &aws.Config{ + EndpointResolver: endpoints.AwsUsGovPartition(), + Region: aws.String("us-gov-east-1-fips"), + }, + expectedErr: "InvalidARNError: resource ARN not supported for FIPS region", + }, + "Outpost AccessPoint with client Fips region and use arn region enabled": { + bucket: "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + config: &aws.Config{ + EndpointResolver: endpoints.AwsUsGovPartition(), + Region: aws.String("us-gov-east-1-fips"), + S3UseARNRegion: aws.Bool(true), + }, + expectedSigningName: "s3-outposts", + expectedSigningRegion: "us-gov-east-1", + expectedEndpoint: "https://s3-outposts.us-gov-east-1.amazonaws.com", + expectedHeaderForAccountID: true, + expectedHeaderForOutpostID: "op-01234567890123456", + }, + "Outpost AccessPoint Fips region in Arn": { + bucket: "arn:aws-us-gov:s3-outposts:us-gov-east-1-fips:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + config: &aws.Config{ + EndpointResolver: endpoints.AwsUsGovPartition(), + EnforceShouldRetryCheck: nil, + Region: aws.String("us-gov-east-1-fips"), + DisableSSL: nil, + HTTPClient: nil, + S3UseARNRegion: aws.Bool(true), + }, + expectedErr: "InvalidARNError: resource ARN not supported for FIPS region", + }, + "Outpost AccessPoint Fips region with valid ARN region": { + bucket: "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + config: &aws.Config{ + EndpointResolver: endpoints.AwsUsGovPartition(), + Region: aws.String("fips-us-gov-east-1"), + S3UseARNRegion: aws.Bool(true), + }, + expectedEndpoint: "https://s3-outposts.us-gov-east-1.amazonaws.com", + expectedSigningName: "s3-outposts", + expectedSigningRegion: "us-gov-east-1", + expectedHeaderForAccountID: true, + expectedHeaderForOutpostID: "op-01234567890123456", + }, + "Outpost AccessPoint with DualStack": { + bucket: "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + config: &aws.Config{ + Region: aws.String("us-west-2"), + UseDualStack: aws.Bool(true), + }, + expectedErr: "ConfigurationError: client configured for S3 Dual-stack but is not supported with resource ARN", + }, + "Outpost AccessPoint with Accelerate": { + bucket: "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + config: &aws.Config{ + Region: aws.String("us-west-2"), + S3UseAccelerate: aws.Bool(true), + }, + expectedErr: "ConfigurationError: client configured for S3 Accelerate but is not supported with resource ARN", + }, + "Invalid outpost resource format": { + bucket: "arn:aws:s3-outposts:us-west-2:123456789012:outpost", + config: &aws.Config{ + Region: aws.String("us-west-2"), + }, + expectedErr: "outpost resource-id not set", + }, + "Missing access point for outpost resource": { + bucket: "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456", + config: &aws.Config{ + Region: aws.String("us-west-2"), + }, + expectedErr: "incomplete outpost resource type", + }, + "access point": { + bucket: "myaccesspoint", + config: &aws.Config{ + Region: aws.String("us-west-2"), + }, + expectedEndpoint: "https://123456789012.s3-control.us-west-2.amazonaws.com", + expectedHeaderForAccountID: true, + expectedSigningRegion: "us-west-2", + expectedSigningName: "s3", + }, + "outpost access point with unsupported sub-resource": { + bucket: "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:mybucket:object:foo", + config: &aws.Config{ + Region: aws.String("us-west-2"), + }, + expectedErr: "sub resource not supported", + }, + "Missing outpost identifiers in outpost access point arn": { + bucket: "arn:aws:s3-outposts:us-west-2:123456789012:accesspoint:myendpoint", + config: &aws.Config{ + Region: aws.String("us-west-2"), + }, + expectedErr: "invalid Amazon s3-outposts ARN", + }, + } + + runValidations(t, cases) +} + +// Test endpoint from outpost bucket arn +func TestEndpoint_OutpostBucketARN(t *testing.T) { + cases := map[string]testParams{ + "Outpost Bucket with no S3UseARNRegion flag set": { + bucket: "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:bucket:mybucket", + config: &aws.Config{ + Region: aws.String("us-west-2"), + }, + expectedEndpoint: "https://s3-outposts.us-west-2.amazonaws.com", + expectedSigningName: "s3-outposts", + expectedSigningRegion: "us-west-2", + expectedHeaderForOutpostID: "op-01234567890123456", + expectedHeaderForAccountID: true, + }, + "Outpost Bucket Cross-Region Enabled": { + bucket: "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + config: &aws.Config{ + Region: aws.String("us-west-2"), + S3UseARNRegion: aws.Bool(true), + }, + expectedEndpoint: "https://s3-outposts.us-east-1.amazonaws.com", + expectedSigningName: "s3-outposts", + expectedSigningRegion: "us-east-1", + expectedHeaderForOutpostID: "op-01234567890123456", + expectedHeaderForAccountID: true, + }, + "Outpost Bucket Cross-Region Disabled": { + bucket: "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + config: &aws.Config{ + Region: aws.String("us-west-2"), + }, + expectedErr: "client region does not match provided ARN region", + }, + "Outpost Bucket other partition": { + bucket: "arn:aws-cn:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + config: &aws.Config{ + Region: aws.String("us-west-2"), + S3UseARNRegion: aws.Bool(true), + }, + expectedErr: "ConfigurationError: client partition does not match provided ARN partition", + }, + "Outpost Bucket us-gov region": { + bucket: "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + config: &aws.Config{ + Region: aws.String("us-gov-east-1"), + S3UseARNRegion: aws.Bool(true), + }, + expectedEndpoint: "https://s3-outposts.us-gov-east-1.amazonaws.com", + expectedSigningName: "s3-outposts", + expectedSigningRegion: "us-gov-east-1", + expectedHeaderForOutpostID: "op-01234567890123456", + expectedHeaderForAccountID: true, + }, + "Outpost Bucket Fips region": { + bucket: "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + config: &aws.Config{ + EndpointResolver: endpoints.AwsUsGovPartition(), + Region: aws.String("fips-us-gov-east-1"), + }, + expectedErr: "ConfigurationError: client region does not match provided ARN region", + }, + "Outpost Bucket Fips region in Arn": { + bucket: "arn:aws-us-gov:s3-outposts:fips-us-gov-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + config: &aws.Config{ + EndpointResolver: endpoints.AwsUsGovPartition(), + EnforceShouldRetryCheck: nil, + Region: aws.String("fips-us-gov-east-1"), + DisableSSL: nil, + HTTPClient: nil, + S3UseARNRegion: aws.Bool(true), + }, + expectedErr: "InvalidARNError: resource ARN not supported for FIPS region", + }, + "Outpost Bucket Fips region with valid ARN region": { + bucket: "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + config: &aws.Config{ + EndpointResolver: endpoints.AwsUsGovPartition(), + Region: aws.String("fips-us-gov-east-1"), + S3UseARNRegion: aws.Bool(true), + }, + expectedEndpoint: "https://s3-outposts.us-gov-east-1.amazonaws.com", + expectedSigningName: "s3-outposts", + expectedSigningRegion: "us-gov-east-1", + expectedHeaderForOutpostID: "op-01234567890123456", + expectedHeaderForAccountID: true, + }, + "Outpost Bucket with DualStack": { + bucket: "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:bucket:mybucket", + config: &aws.Config{ + Region: aws.String("us-west-2"), + UseDualStack: aws.Bool(true), + }, + expectedErr: "ConfigurationError: client configured for S3 Dual-stack but is not supported with resource ARN", + }, + "Outpost Bucket with Accelerate": { + bucket: "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + config: &aws.Config{ + Region: aws.String("us-west-2"), + S3UseAccelerate: aws.Bool(true), + }, + expectedErr: "ConfigurationError: client configured for S3 Accelerate but is not supported with resource ARN", + }, + "Missing bucket id": { + bucket: "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:bucket", + config: &aws.Config{ + Region: aws.String("us-west-2"), + S3UseAccelerate: aws.Bool(true), + }, + expectedErr: "invalid Amazon s3-outposts ARN", + }, + "Invalid ARN": { + bucket: "arn:aws:s3-outposts:us-west-2:123456789012:bucket:mybucket", + config: &aws.Config{ + Region: aws.String("us-west-2"), + }, + expectedErr: "invalid Amazon s3-outposts ARN, unknown resource type", + }, + } + + runValidations(t, cases) +} + +// Runs the test validation +func runValidations(t *testing.T, cases map[string]testParams) { + for name, c := range cases { + t.Run(name, func(t *testing.T) { + sess := unit.Session.Copy(c.config) + + svc := New(sess) + req, _ := svc.GetBucketRequest(&GetBucketInput{ + Bucket: &c.bucket, + AccountId: aws.String("123456789012"), + }) + + req.Handlers.Send.Clear() + req.Handlers.Send.PushBack(func(r *request.Request) { + defer func() { + r.HTTPResponse = &http.Response{ + StatusCode: 200, + ContentLength: 0, + Body: ioutil.NopCloser(bytes.NewReader(nil)), + } + }() + if len(c.expectedErr) != 0 { + return + } + + endpoint := fmt.Sprintf("%s://%s", r.HTTPRequest.URL.Scheme, r.HTTPRequest.URL.Host) + if e, a := c.expectedEndpoint, endpoint; e != a { + t.Errorf("expected %v, got %v", e, a) + } + + if e, a := c.expectedSigningName, r.ClientInfo.SigningName; c.config.Endpoint == nil && e != a { + t.Errorf("expected %v, got %v", e, a) + } + if e, a := c.expectedSigningRegion, r.ClientInfo.SigningRegion; e != a { + t.Errorf("expected %v, got %v", e, a) + } + + if e, a := c.expectedHeaderForOutpostID, r.HTTPRequest.Header.Get("x-amz-outpost-id"); e != a { + if len(e) == 0 { + t.Errorf("expected no outpost id header set, got %v", a) + } else if len(a) == 0 { + t.Errorf("expected outpost id header set as %v, got none", e) + } else { + t.Errorf("expected %v as Outpost id header value, got %v", e, a) + } + } + + if c.expectedHeaderForAccountID { + if e, a := "123456789012", r.HTTPRequest.Header.Get("x-amz-account-id"); e != a { + t.Errorf("expected x-amz-account-id header value to be %v, got %v", e, a) + } + } + }) + + err := req.Send() + if len(c.expectedErr) == 0 && err != nil { + t.Errorf("expected no error but got: %v", err) + } else if len(c.expectedErr) != 0 && err == nil { + t.Errorf("expected err %q, but got nil", c.expectedErr) + } else if len(c.expectedErr) != 0 && err != nil && !strings.Contains(err.Error(), c.expectedErr) { + t.Errorf("expected %v, got %v", c.expectedErr, err.Error()) + } + }) + } +} + +func TestCustomEndpoint_SpecialOperations(t *testing.T) { + cases := map[string]struct { + bucket string + outpostID string + config *aws.Config + requestFn func(c *S3Control) *request.Request + expectedEndpoint string + expectedSigningName string + expectedSigningRegion string + expectedHeaderForOutpostID string + expectedErr string + }{ + "CreateBucketOperation": { + bucket: "mockBucket", + outpostID: "op-01234567890123456", + config: &aws.Config{ + Region: aws.String("us-west-2"), + }, + requestFn: func(svc *S3Control) *request.Request { + req, _ := svc.CreateBucketRequest(&CreateBucketInput{ + Bucket: aws.String("mockBucket"), + OutpostId: aws.String("op-01234567890123456"), + }) + return req + }, + expectedEndpoint: "https://s3-outposts.us-west-2.amazonaws.com", + expectedSigningName: "s3-outposts", + expectedSigningRegion: "us-west-2", + expectedHeaderForOutpostID: "op-01234567890123456", + }, + "ListRegionalBucketsOperation": { + bucket: "mockBucket", + outpostID: "op-01234567890123456", + config: &aws.Config{ + Region: aws.String("us-west-2"), + }, + requestFn: func(svc *S3Control) *request.Request { + req, _ := svc.ListRegionalBucketsRequest(&ListRegionalBucketsInput{ + OutpostId: aws.String("op-01234567890123456"), + AccountId: aws.String("123456789012"), + }) + return req + }, + expectedEndpoint: "https://s3-outposts.us-west-2.amazonaws.com", + expectedSigningName: "s3-outposts", + expectedSigningRegion: "us-west-2", + expectedHeaderForOutpostID: "op-01234567890123456", + }, + "CreateAccessPoint bucket arn": { + config: &aws.Config{ + Region: aws.String("us-west-2"), + }, + requestFn: func(svc *S3Control) *request.Request { + req, _ := svc.CreateAccessPointRequest(&CreateAccessPointInput{ + AccountId: aws.String("123456789012"), + Bucket: aws.String("arn:aws:s3:us-west-2:123456789012:bucket:mockBucket"), + Name: aws.String("mockName"), + }) + return req + }, + expectedErr: "invalid Amazon s3 ARN, unknown resource type", + }, + "CreateAccessPoint outpost bucket arn": { + config: &aws.Config{ + Region: aws.String("us-west-2"), + }, + requestFn: func(svc *S3Control) *request.Request { + req, _ := svc.CreateAccessPointRequest(&CreateAccessPointInput{ + AccountId: aws.String("123456789012"), + Bucket: aws.String("arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:bucket:mockBucket"), + Name: aws.String("mockName"), + }) + return req + }, + expectedEndpoint: "https://s3-outposts.us-west-2.amazonaws.com", + expectedSigningName: "s3-outposts", + expectedSigningRegion: "us-west-2", + expectedHeaderForOutpostID: "op-01234567890123456", + }, + } + + for name, c := range cases { + t.Run(name, func(t *testing.T) { + sess := unit.Session.Copy(c.config) + svc := New(sess) + req := c.requestFn(svc) + req.Handlers.Send.Clear() + req.Handlers.Send.PushBack(func(r *request.Request) { + defer func() { + r.HTTPResponse = &http.Response{ + StatusCode: 200, + ContentLength: 0, + Body: ioutil.NopCloser(bytes.NewReader(nil)), + } + }() + if len(c.expectedErr) != 0 { + return + } + + endpoint := fmt.Sprintf("%s://%s", r.HTTPRequest.URL.Scheme, r.HTTPRequest.URL.Host) + if e, a := c.expectedEndpoint, endpoint; e != a { + t.Errorf("expected %v, got %v", e, a) + } + + if e, a := c.expectedSigningName, r.ClientInfo.SigningName; c.config.Endpoint == nil && e != a { + t.Errorf("expected %v, got %v", e, a) + } + if e, a := c.expectedSigningRegion, r.ClientInfo.SigningRegion; e != a { + t.Errorf("expected %v, got %v", e, a) + } + + if e, a := c.expectedHeaderForOutpostID, r.HTTPRequest.Header.Get("x-amz-outpost-id"); e != a { + if len(e) == 0 { + t.Errorf("expected no outpost id header set, got %v", a) + } else if len(a) == 0 { + t.Errorf("expected outpost id header set as %v, got none", e) + } else { + t.Errorf("expected %v as Outpost id header value, got %v", e, a) + } + } + }) + + err := req.Send() + if len(c.expectedErr) == 0 && err != nil { + t.Errorf("expected no error but got: %v", err) + } else if len(c.expectedErr) != 0 && err == nil { + t.Errorf("expected err %q, but got nil", c.expectedErr) + } else if len(c.expectedErr) != 0 && err != nil && !strings.Contains(err.Error(), c.expectedErr) { + t.Errorf("expected %v, got %v", c.expectedErr, err.Error()) + } + }) + } +} diff --git a/service/s3control/errors.go b/service/s3control/errors.go index cc36c98f478..fea7088ab3f 100644 --- a/service/s3control/errors.go +++ b/service/s3control/errors.go @@ -8,6 +8,20 @@ const ( // "BadRequestException". ErrCodeBadRequestException = "BadRequestException" + // ErrCodeBucketAlreadyExists for service response error code + // "BucketAlreadyExists". + // + // The requested Outposts bucket name is not available. The bucket namespace + // is shared by all users of the AWS Outposts in this Region. Select a different + // name and try again. + ErrCodeBucketAlreadyExists = "BucketAlreadyExists" + + // ErrCodeBucketAlreadyOwnedByYou for service response error code + // "BucketAlreadyOwnedByYou". + // + // The Outposts bucket you tried to create already exists, and you own it. + ErrCodeBucketAlreadyOwnedByYou = "BucketAlreadyOwnedByYou" + // ErrCodeIdempotencyException for service response error code // "IdempotencyException". ErrCodeIdempotencyException = "IdempotencyException" @@ -45,5 +59,7 @@ const ( // ErrCodeTooManyTagsException for service response error code // "TooManyTagsException". + // + // Amazon S3 throws this exception if you have too many tags in your tag set. ErrCodeTooManyTagsException = "TooManyTagsException" ) diff --git a/service/s3control/s3controliface/interface.go b/service/s3control/s3controliface/interface.go index faf7aa23eff..84013261ab5 100644 --- a/service/s3control/s3controliface/interface.go +++ b/service/s3control/s3controliface/interface.go @@ -64,6 +64,10 @@ type S3ControlAPI interface { CreateAccessPointWithContext(aws.Context, *s3control.CreateAccessPointInput, ...request.Option) (*s3control.CreateAccessPointOutput, error) CreateAccessPointRequest(*s3control.CreateAccessPointInput) (*request.Request, *s3control.CreateAccessPointOutput) + CreateBucket(*s3control.CreateBucketInput) (*s3control.CreateBucketOutput, error) + CreateBucketWithContext(aws.Context, *s3control.CreateBucketInput, ...request.Option) (*s3control.CreateBucketOutput, error) + CreateBucketRequest(*s3control.CreateBucketInput) (*request.Request, *s3control.CreateBucketOutput) + CreateJob(*s3control.CreateJobInput) (*s3control.CreateJobOutput, error) CreateJobWithContext(aws.Context, *s3control.CreateJobInput, ...request.Option) (*s3control.CreateJobOutput, error) CreateJobRequest(*s3control.CreateJobInput) (*request.Request, *s3control.CreateJobOutput) @@ -76,6 +80,22 @@ type S3ControlAPI interface { DeleteAccessPointPolicyWithContext(aws.Context, *s3control.DeleteAccessPointPolicyInput, ...request.Option) (*s3control.DeleteAccessPointPolicyOutput, error) DeleteAccessPointPolicyRequest(*s3control.DeleteAccessPointPolicyInput) (*request.Request, *s3control.DeleteAccessPointPolicyOutput) + DeleteBucket(*s3control.DeleteBucketInput) (*s3control.DeleteBucketOutput, error) + DeleteBucketWithContext(aws.Context, *s3control.DeleteBucketInput, ...request.Option) (*s3control.DeleteBucketOutput, error) + DeleteBucketRequest(*s3control.DeleteBucketInput) (*request.Request, *s3control.DeleteBucketOutput) + + DeleteBucketLifecycleConfiguration(*s3control.DeleteBucketLifecycleConfigurationInput) (*s3control.DeleteBucketLifecycleConfigurationOutput, error) + DeleteBucketLifecycleConfigurationWithContext(aws.Context, *s3control.DeleteBucketLifecycleConfigurationInput, ...request.Option) (*s3control.DeleteBucketLifecycleConfigurationOutput, error) + DeleteBucketLifecycleConfigurationRequest(*s3control.DeleteBucketLifecycleConfigurationInput) (*request.Request, *s3control.DeleteBucketLifecycleConfigurationOutput) + + DeleteBucketPolicy(*s3control.DeleteBucketPolicyInput) (*s3control.DeleteBucketPolicyOutput, error) + DeleteBucketPolicyWithContext(aws.Context, *s3control.DeleteBucketPolicyInput, ...request.Option) (*s3control.DeleteBucketPolicyOutput, error) + DeleteBucketPolicyRequest(*s3control.DeleteBucketPolicyInput) (*request.Request, *s3control.DeleteBucketPolicyOutput) + + DeleteBucketTagging(*s3control.DeleteBucketTaggingInput) (*s3control.DeleteBucketTaggingOutput, error) + DeleteBucketTaggingWithContext(aws.Context, *s3control.DeleteBucketTaggingInput, ...request.Option) (*s3control.DeleteBucketTaggingOutput, error) + DeleteBucketTaggingRequest(*s3control.DeleteBucketTaggingInput) (*request.Request, *s3control.DeleteBucketTaggingOutput) + DeleteJobTagging(*s3control.DeleteJobTaggingInput) (*s3control.DeleteJobTaggingOutput, error) DeleteJobTaggingWithContext(aws.Context, *s3control.DeleteJobTaggingInput, ...request.Option) (*s3control.DeleteJobTaggingOutput, error) DeleteJobTaggingRequest(*s3control.DeleteJobTaggingInput) (*request.Request, *s3control.DeleteJobTaggingOutput) @@ -100,6 +120,22 @@ type S3ControlAPI interface { GetAccessPointPolicyStatusWithContext(aws.Context, *s3control.GetAccessPointPolicyStatusInput, ...request.Option) (*s3control.GetAccessPointPolicyStatusOutput, error) GetAccessPointPolicyStatusRequest(*s3control.GetAccessPointPolicyStatusInput) (*request.Request, *s3control.GetAccessPointPolicyStatusOutput) + GetBucket(*s3control.GetBucketInput) (*s3control.GetBucketOutput, error) + GetBucketWithContext(aws.Context, *s3control.GetBucketInput, ...request.Option) (*s3control.GetBucketOutput, error) + GetBucketRequest(*s3control.GetBucketInput) (*request.Request, *s3control.GetBucketOutput) + + GetBucketLifecycleConfiguration(*s3control.GetBucketLifecycleConfigurationInput) (*s3control.GetBucketLifecycleConfigurationOutput, error) + GetBucketLifecycleConfigurationWithContext(aws.Context, *s3control.GetBucketLifecycleConfigurationInput, ...request.Option) (*s3control.GetBucketLifecycleConfigurationOutput, error) + GetBucketLifecycleConfigurationRequest(*s3control.GetBucketLifecycleConfigurationInput) (*request.Request, *s3control.GetBucketLifecycleConfigurationOutput) + + GetBucketPolicy(*s3control.GetBucketPolicyInput) (*s3control.GetBucketPolicyOutput, error) + GetBucketPolicyWithContext(aws.Context, *s3control.GetBucketPolicyInput, ...request.Option) (*s3control.GetBucketPolicyOutput, error) + GetBucketPolicyRequest(*s3control.GetBucketPolicyInput) (*request.Request, *s3control.GetBucketPolicyOutput) + + GetBucketTagging(*s3control.GetBucketTaggingInput) (*s3control.GetBucketTaggingOutput, error) + GetBucketTaggingWithContext(aws.Context, *s3control.GetBucketTaggingInput, ...request.Option) (*s3control.GetBucketTaggingOutput, error) + GetBucketTaggingRequest(*s3control.GetBucketTaggingInput) (*request.Request, *s3control.GetBucketTaggingOutput) + GetJobTagging(*s3control.GetJobTaggingInput) (*s3control.GetJobTaggingOutput, error) GetJobTaggingWithContext(aws.Context, *s3control.GetJobTaggingInput, ...request.Option) (*s3control.GetJobTaggingOutput, error) GetJobTaggingRequest(*s3control.GetJobTaggingInput) (*request.Request, *s3control.GetJobTaggingOutput) @@ -122,10 +158,29 @@ type S3ControlAPI interface { ListJobsPages(*s3control.ListJobsInput, func(*s3control.ListJobsOutput, bool) bool) error ListJobsPagesWithContext(aws.Context, *s3control.ListJobsInput, func(*s3control.ListJobsOutput, bool) bool, ...request.Option) error + ListRegionalBuckets(*s3control.ListRegionalBucketsInput) (*s3control.ListRegionalBucketsOutput, error) + ListRegionalBucketsWithContext(aws.Context, *s3control.ListRegionalBucketsInput, ...request.Option) (*s3control.ListRegionalBucketsOutput, error) + ListRegionalBucketsRequest(*s3control.ListRegionalBucketsInput) (*request.Request, *s3control.ListRegionalBucketsOutput) + + ListRegionalBucketsPages(*s3control.ListRegionalBucketsInput, func(*s3control.ListRegionalBucketsOutput, bool) bool) error + ListRegionalBucketsPagesWithContext(aws.Context, *s3control.ListRegionalBucketsInput, func(*s3control.ListRegionalBucketsOutput, bool) bool, ...request.Option) error + PutAccessPointPolicy(*s3control.PutAccessPointPolicyInput) (*s3control.PutAccessPointPolicyOutput, error) PutAccessPointPolicyWithContext(aws.Context, *s3control.PutAccessPointPolicyInput, ...request.Option) (*s3control.PutAccessPointPolicyOutput, error) PutAccessPointPolicyRequest(*s3control.PutAccessPointPolicyInput) (*request.Request, *s3control.PutAccessPointPolicyOutput) + PutBucketLifecycleConfiguration(*s3control.PutBucketLifecycleConfigurationInput) (*s3control.PutBucketLifecycleConfigurationOutput, error) + PutBucketLifecycleConfigurationWithContext(aws.Context, *s3control.PutBucketLifecycleConfigurationInput, ...request.Option) (*s3control.PutBucketLifecycleConfigurationOutput, error) + PutBucketLifecycleConfigurationRequest(*s3control.PutBucketLifecycleConfigurationInput) (*request.Request, *s3control.PutBucketLifecycleConfigurationOutput) + + PutBucketPolicy(*s3control.PutBucketPolicyInput) (*s3control.PutBucketPolicyOutput, error) + PutBucketPolicyWithContext(aws.Context, *s3control.PutBucketPolicyInput, ...request.Option) (*s3control.PutBucketPolicyOutput, error) + PutBucketPolicyRequest(*s3control.PutBucketPolicyInput) (*request.Request, *s3control.PutBucketPolicyOutput) + + PutBucketTagging(*s3control.PutBucketTaggingInput) (*s3control.PutBucketTaggingOutput, error) + PutBucketTaggingWithContext(aws.Context, *s3control.PutBucketTaggingInput, ...request.Option) (*s3control.PutBucketTaggingOutput, error) + PutBucketTaggingRequest(*s3control.PutBucketTaggingInput) (*request.Request, *s3control.PutBucketTaggingOutput) + PutJobTagging(*s3control.PutJobTaggingInput) (*s3control.PutJobTaggingOutput, error) PutJobTaggingWithContext(aws.Context, *s3control.PutJobTaggingInput, ...request.Option) (*s3control.PutJobTaggingOutput, error) PutJobTaggingRequest(*s3control.PutJobTaggingInput) (*request.Request, *s3control.PutJobTaggingOutput) diff --git a/service/s3control/validate.go b/service/s3control/validate.go new file mode 100644 index 00000000000..c3eb460dc78 --- /dev/null +++ b/service/s3control/validate.go @@ -0,0 +1,38 @@ +package s3control + +import ( + "fmt" + + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/internal/s3shared" +) + +// updateAccountIDWithARNHandler is a request named handler that is used to validate and populate the request account id +// input if it may also be present in the resource ARN. +var updateAccountIDWithARNHandler = request.NamedHandler{ + Name: "updateAccountIDWithARNHandler", + Fn: func(req *request.Request) { + endpoint, ok := req.Params.(endpointARNGetter) + if !ok || !endpoint.hasEndpointARN() { + return + } + + // fetch endpoint arn resource + resource, err := endpoint.getEndpointARN() + if err != nil { + req.Error = fmt.Errorf("error while fetching endpoint ARN: %v", err) + return + } + + // Validate that the present account id in a request input matches the account id + // present in an ARN. If a value for request input account id member is not provided, + // the accountID member is populated using the account id present in the ARN. + if accountIDValidator, ok := req.Params.(accountIDValidator); ok { + accID := resource.GetARN().AccountID + if err := accountIDValidator.updateAccountID(accID); err != nil { + req.Error = s3shared.NewInvalidARNError(resource, err) + return + } + } + }, +} diff --git a/service/s3outposts/api.go b/service/s3outposts/api.go new file mode 100644 index 00000000000..648da5e73db --- /dev/null +++ b/service/s3outposts/api.go @@ -0,0 +1,1012 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package s3outposts + +import ( + "fmt" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awsutil" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/restjson" +) + +const opCreateEndpoint = "CreateEndpoint" + +// CreateEndpointRequest generates a "aws/request.Request" representing the +// client's request for the CreateEndpoint operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See CreateEndpoint for more information on using the CreateEndpoint +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the CreateEndpointRequest method. +// req, resp := client.CreateEndpointRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3outposts-2017-07-25/CreateEndpoint +func (c *S3Outposts) CreateEndpointRequest(input *CreateEndpointInput) (req *request.Request, output *CreateEndpointOutput) { + op := &request.Operation{ + Name: opCreateEndpoint, + HTTPMethod: "POST", + HTTPPath: "/S3Outposts/CreateEndpoint", + } + + if input == nil { + input = &CreateEndpointInput{} + } + + output = &CreateEndpointOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateEndpoint API operation for Amazon S3 on Outposts. +// +// S3 on Outposts access points simplify managing data access at scale for shared +// datasets in Amazon S3 on Outposts. S3 on Outposts uses endpoints to connect +// to Outposts buckets so that you can perform actions within your virtual private +// cloud (VPC). +// +// This action creates an endpoint and associates it with the specified Outpost. +// +// Related actions include: +// +// * DeleteEndpoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_DeleteEndpoint.html) +// +// * ListEndpoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_ListEndpoints.html) +// +// 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 +// the error. +// +// See the AWS API reference guide for Amazon S3 on Outposts's +// API operation CreateEndpoint for usage and error information. +// +// Returned Error Types: +// * InternalServerException +// There was an exception with the internal server. +// +// * ValidationException +// There was an exception validating this data. +// +// * AccessDeniedException +// Access was denied for this action. +// +// * ResourceNotFoundException +// The requested resource was not found. +// +// * ConflictException +// There was a conflict with this action, and it could not be completed. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3outposts-2017-07-25/CreateEndpoint +func (c *S3Outposts) CreateEndpoint(input *CreateEndpointInput) (*CreateEndpointOutput, error) { + req, out := c.CreateEndpointRequest(input) + return out, req.Send() +} + +// CreateEndpointWithContext is the same as CreateEndpoint with the addition of +// the ability to pass a context and additional request options. +// +// See CreateEndpoint for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Outposts) CreateEndpointWithContext(ctx aws.Context, input *CreateEndpointInput, opts ...request.Option) (*CreateEndpointOutput, error) { + req, out := c.CreateEndpointRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteEndpoint = "DeleteEndpoint" + +// DeleteEndpointRequest generates a "aws/request.Request" representing the +// client's request for the DeleteEndpoint operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteEndpoint for more information on using the DeleteEndpoint +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DeleteEndpointRequest method. +// req, resp := client.DeleteEndpointRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3outposts-2017-07-25/DeleteEndpoint +func (c *S3Outposts) DeleteEndpointRequest(input *DeleteEndpointInput) (req *request.Request, output *DeleteEndpointOutput) { + op := &request.Operation{ + Name: opDeleteEndpoint, + HTTPMethod: "DELETE", + HTTPPath: "/S3Outposts/DeleteEndpoint", + } + + if input == nil { + input = &DeleteEndpointInput{} + } + + output = &DeleteEndpointOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteEndpoint API operation for Amazon S3 on Outposts. +// +// S3 on Outposts access points simplify managing data access at scale for shared +// datasets in Amazon S3 on Outposts. S3 on Outposts uses endpoints to connect +// to Outposts buckets so that you can perform actions within your virtual private +// cloud (VPC). +// +// This action deletes an endpoint. +// +// Related actions include: +// +// * CreateEndpoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_CreateEndpoint.html) +// +// * ListEndpoints (https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_ListEndpoints.html) +// +// 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 +// the error. +// +// See the AWS API reference guide for Amazon S3 on Outposts's +// API operation DeleteEndpoint for usage and error information. +// +// Returned Error Types: +// * InternalServerException +// There was an exception with the internal server. +// +// * AccessDeniedException +// Access was denied for this action. +// +// * ResourceNotFoundException +// The requested resource was not found. +// +// * ValidationException +// There was an exception validating this data. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3outposts-2017-07-25/DeleteEndpoint +func (c *S3Outposts) DeleteEndpoint(input *DeleteEndpointInput) (*DeleteEndpointOutput, error) { + req, out := c.DeleteEndpointRequest(input) + return out, req.Send() +} + +// DeleteEndpointWithContext is the same as DeleteEndpoint with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteEndpoint for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Outposts) DeleteEndpointWithContext(ctx aws.Context, input *DeleteEndpointInput, opts ...request.Option) (*DeleteEndpointOutput, error) { + req, out := c.DeleteEndpointRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListEndpoints = "ListEndpoints" + +// ListEndpointsRequest generates a "aws/request.Request" representing the +// client's request for the ListEndpoints operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListEndpoints for more information on using the ListEndpoints +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ListEndpointsRequest method. +// req, resp := client.ListEndpointsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3outposts-2017-07-25/ListEndpoints +func (c *S3Outposts) ListEndpointsRequest(input *ListEndpointsInput) (req *request.Request, output *ListEndpointsOutput) { + op := &request.Operation{ + Name: opListEndpoints, + HTTPMethod: "GET", + HTTPPath: "/S3Outposts/ListEndpoints", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListEndpointsInput{} + } + + output = &ListEndpointsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListEndpoints API operation for Amazon S3 on Outposts. +// +// S3 on Outposts access points simplify managing data access at scale for shared +// datasets in Amazon S3 on Outposts. S3 on Outposts uses endpoints to connect +// to Outposts buckets so that you can perform actions within your virtual private +// cloud (VPC). +// +// This action lists endpoints associated with the Outpost. +// +// Related actions include: +// +// * CreateEndpoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_CreateEndpoint.html) +// +// * DeleteEndpoint (https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3outposts_DeleteEndpoint.html) +// +// 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 +// the error. +// +// See the AWS API reference guide for Amazon S3 on Outposts's +// API operation ListEndpoints for usage and error information. +// +// Returned Error Types: +// * InternalServerException +// There was an exception with the internal server. +// +// * ResourceNotFoundException +// The requested resource was not found. +// +// * AccessDeniedException +// Access was denied for this action. +// +// * ValidationException +// There was an exception validating this data. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/s3outposts-2017-07-25/ListEndpoints +func (c *S3Outposts) ListEndpoints(input *ListEndpointsInput) (*ListEndpointsOutput, error) { + req, out := c.ListEndpointsRequest(input) + return out, req.Send() +} + +// ListEndpointsWithContext is the same as ListEndpoints with the addition of +// the ability to pass a context and additional request options. +// +// See ListEndpoints for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Outposts) ListEndpointsWithContext(ctx aws.Context, input *ListEndpointsInput, opts ...request.Option) (*ListEndpointsOutput, error) { + req, out := c.ListEndpointsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListEndpointsPages iterates over the pages of a ListEndpoints operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListEndpoints method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListEndpoints operation. +// pageNum := 0 +// err := client.ListEndpointsPages(params, +// func(page *s3outposts.ListEndpointsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *S3Outposts) ListEndpointsPages(input *ListEndpointsInput, fn func(*ListEndpointsOutput, bool) bool) error { + return c.ListEndpointsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListEndpointsPagesWithContext same as ListEndpointsPages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *S3Outposts) ListEndpointsPagesWithContext(ctx aws.Context, input *ListEndpointsInput, fn func(*ListEndpointsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListEndpointsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListEndpointsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListEndpointsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +// Access was denied for this action. +type AccessDeniedException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation +func (s AccessDeniedException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AccessDeniedException) GoString() string { + return s.String() +} + +func newErrorAccessDeniedException(v protocol.ResponseMetadata) error { + return &AccessDeniedException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *AccessDeniedException) Code() string { + return "AccessDeniedException" +} + +// Message returns the exception's message. +func (s *AccessDeniedException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *AccessDeniedException) OrigErr() error { + return nil +} + +func (s *AccessDeniedException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *AccessDeniedException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *AccessDeniedException) RequestID() string { + return s.RespMetadata.RequestID +} + +// There was a conflict with this action, and it could not be completed. +type ConflictException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation +func (s ConflictException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ConflictException) GoString() string { + return s.String() +} + +func newErrorConflictException(v protocol.ResponseMetadata) error { + return &ConflictException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ConflictException) Code() string { + return "ConflictException" +} + +// Message returns the exception's message. +func (s *ConflictException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ConflictException) OrigErr() error { + return nil +} + +func (s *ConflictException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ConflictException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ConflictException) RequestID() string { + return s.RespMetadata.RequestID +} + +type CreateEndpointInput struct { + _ struct{} `type:"structure"` + + // The ID of the AWS Outpost. + // + // OutpostId is a required field + OutpostId *string `min:"1" type:"string" required:"true"` + + // The ID of the security group to use with the endpoint. + // + // SecurityGroupId is a required field + SecurityGroupId *string `min:"1" type:"string" required:"true"` + + // The ID of the subnet in the selected VPC. + // + // SubnetId is a required field + SubnetId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateEndpointInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateEndpointInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateEndpointInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateEndpointInput"} + if s.OutpostId == nil { + invalidParams.Add(request.NewErrParamRequired("OutpostId")) + } + if s.OutpostId != nil && len(*s.OutpostId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("OutpostId", 1)) + } + if s.SecurityGroupId == nil { + invalidParams.Add(request.NewErrParamRequired("SecurityGroupId")) + } + if s.SecurityGroupId != nil && len(*s.SecurityGroupId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("SecurityGroupId", 1)) + } + if s.SubnetId == nil { + invalidParams.Add(request.NewErrParamRequired("SubnetId")) + } + if s.SubnetId != nil && len(*s.SubnetId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("SubnetId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetOutpostId sets the OutpostId field's value. +func (s *CreateEndpointInput) SetOutpostId(v string) *CreateEndpointInput { + s.OutpostId = &v + return s +} + +// SetSecurityGroupId sets the SecurityGroupId field's value. +func (s *CreateEndpointInput) SetSecurityGroupId(v string) *CreateEndpointInput { + s.SecurityGroupId = &v + return s +} + +// SetSubnetId sets the SubnetId field's value. +func (s *CreateEndpointInput) SetSubnetId(v string) *CreateEndpointInput { + s.SubnetId = &v + return s +} + +type CreateEndpointOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the endpoint. + EndpointArn *string `min:"5" type:"string"` +} + +// String returns the string representation +func (s CreateEndpointOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateEndpointOutput) GoString() string { + return s.String() +} + +// SetEndpointArn sets the EndpointArn field's value. +func (s *CreateEndpointOutput) SetEndpointArn(v string) *CreateEndpointOutput { + s.EndpointArn = &v + return s +} + +type DeleteEndpointInput struct { + _ struct{} `type:"structure"` + + // The ID of the end point. + // + // EndpointId is a required field + EndpointId *string `location:"querystring" locationName:"endpointId" min:"5" type:"string" required:"true"` + + // The ID of the AWS Outpost. + // + // OutpostId is a required field + OutpostId *string `location:"querystring" locationName:"outpostId" min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteEndpointInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteEndpointInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteEndpointInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteEndpointInput"} + if s.EndpointId == nil { + invalidParams.Add(request.NewErrParamRequired("EndpointId")) + } + if s.EndpointId != nil && len(*s.EndpointId) < 5 { + invalidParams.Add(request.NewErrParamMinLen("EndpointId", 5)) + } + if s.OutpostId == nil { + invalidParams.Add(request.NewErrParamRequired("OutpostId")) + } + if s.OutpostId != nil && len(*s.OutpostId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("OutpostId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEndpointId sets the EndpointId field's value. +func (s *DeleteEndpointInput) SetEndpointId(v string) *DeleteEndpointInput { + s.EndpointId = &v + return s +} + +// SetOutpostId sets the OutpostId field's value. +func (s *DeleteEndpointInput) SetOutpostId(v string) *DeleteEndpointInput { + s.OutpostId = &v + return s +} + +type DeleteEndpointOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteEndpointOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteEndpointOutput) GoString() string { + return s.String() +} + +// S3 on Outposts access points simplify managing data access at scale for shared +// datasets in Amazon S3 on Outposts. S3 on Outposts uses endpoints to connect +// to Outposts buckets so that you can perform actions within your virtual private +// cloud (VPC). +type Endpoint struct { + _ struct{} `type:"structure"` + + // The VPC CIDR committed by this endpoint. + CidrBlock *string `min:"1" type:"string"` + + // The time the endpoint was created. + CreationTime *time.Time `type:"timestamp"` + + // The Amazon Resource Name (ARN) of the endpoint. + EndpointArn *string `min:"5" type:"string"` + + // The network interface of the endpoint. + NetworkInterfaces []*NetworkInterface `type:"list"` + + // The ID of the AWS Outpost. + OutpostsId *string `min:"1" type:"string"` + + // The status of the endpoint. + Status *string `type:"string" enum:"EndpointStatus"` +} + +// String returns the string representation +func (s Endpoint) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Endpoint) GoString() string { + return s.String() +} + +// SetCidrBlock sets the CidrBlock field's value. +func (s *Endpoint) SetCidrBlock(v string) *Endpoint { + s.CidrBlock = &v + return s +} + +// SetCreationTime sets the CreationTime field's value. +func (s *Endpoint) SetCreationTime(v time.Time) *Endpoint { + s.CreationTime = &v + return s +} + +// SetEndpointArn sets the EndpointArn field's value. +func (s *Endpoint) SetEndpointArn(v string) *Endpoint { + s.EndpointArn = &v + return s +} + +// SetNetworkInterfaces sets the NetworkInterfaces field's value. +func (s *Endpoint) SetNetworkInterfaces(v []*NetworkInterface) *Endpoint { + s.NetworkInterfaces = v + return s +} + +// SetOutpostsId sets the OutpostsId field's value. +func (s *Endpoint) SetOutpostsId(v string) *Endpoint { + s.OutpostsId = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *Endpoint) SetStatus(v string) *Endpoint { + s.Status = &v + return s +} + +// There was an exception with the internal server. +type InternalServerException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation +func (s InternalServerException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s InternalServerException) GoString() string { + return s.String() +} + +func newErrorInternalServerException(v protocol.ResponseMetadata) error { + return &InternalServerException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *InternalServerException) Code() string { + return "InternalServerException" +} + +// Message returns the exception's message. +func (s *InternalServerException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *InternalServerException) OrigErr() error { + return nil +} + +func (s *InternalServerException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *InternalServerException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *InternalServerException) RequestID() string { + return s.RespMetadata.RequestID +} + +type ListEndpointsInput struct { + _ struct{} `type:"structure"` + + // The max number of endpoints that can be returned on the request. + MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"` + + // The next endpoint requested in the list. + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation +func (s ListEndpointsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListEndpointsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListEndpointsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListEndpointsInput"} + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListEndpointsInput) SetMaxResults(v int64) *ListEndpointsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListEndpointsInput) SetNextToken(v string) *ListEndpointsInput { + s.NextToken = &v + return s +} + +type ListEndpointsOutput struct { + _ struct{} `type:"structure"` + + // Returns an array of endpoints associated with AWS Outpost. + Endpoints []*Endpoint `type:"list"` + + // The next endpoint returned in the list. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListEndpointsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListEndpointsOutput) GoString() string { + return s.String() +} + +// SetEndpoints sets the Endpoints field's value. +func (s *ListEndpointsOutput) SetEndpoints(v []*Endpoint) *ListEndpointsOutput { + s.Endpoints = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListEndpointsOutput) SetNextToken(v string) *ListEndpointsOutput { + s.NextToken = &v + return s +} + +// The container for the network interface. +type NetworkInterface struct { + _ struct{} `type:"structure"` + + // The ID for the network interface. + NetworkInterfaceId *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s NetworkInterface) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s NetworkInterface) GoString() string { + return s.String() +} + +// SetNetworkInterfaceId sets the NetworkInterfaceId field's value. +func (s *NetworkInterface) SetNetworkInterfaceId(v string) *NetworkInterface { + s.NetworkInterfaceId = &v + return s +} + +// The requested resource was not found. +type ResourceNotFoundException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation +func (s ResourceNotFoundException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ResourceNotFoundException) GoString() string { + return s.String() +} + +func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { + return &ResourceNotFoundException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ResourceNotFoundException) Code() string { + return "ResourceNotFoundException" +} + +// Message returns the exception's message. +func (s *ResourceNotFoundException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ResourceNotFoundException) OrigErr() error { + return nil +} + +func (s *ResourceNotFoundException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ResourceNotFoundException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ResourceNotFoundException) RequestID() string { + return s.RespMetadata.RequestID +} + +// There was an exception validating this data. +type ValidationException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation +func (s ValidationException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ValidationException) GoString() string { + return s.String() +} + +func newErrorValidationException(v protocol.ResponseMetadata) error { + return &ValidationException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ValidationException) Code() string { + return "ValidationException" +} + +// Message returns the exception's message. +func (s *ValidationException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ValidationException) OrigErr() error { + return nil +} + +func (s *ValidationException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ValidationException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ValidationException) RequestID() string { + return s.RespMetadata.RequestID +} + +const ( + // EndpointStatusPending is a EndpointStatus enum value + EndpointStatusPending = "PENDING" + + // EndpointStatusAvailable is a EndpointStatus enum value + EndpointStatusAvailable = "AVAILABLE" +) + +// EndpointStatus_Values returns all elements of the EndpointStatus enum +func EndpointStatus_Values() []string { + return []string{ + EndpointStatusPending, + EndpointStatusAvailable, + } +} diff --git a/service/s3outposts/doc.go b/service/s3outposts/doc.go new file mode 100644 index 00000000000..d0e994d61f6 --- /dev/null +++ b/service/s3outposts/doc.go @@ -0,0 +1,28 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package s3outposts provides the client and types for making API +// requests to Amazon S3 on Outposts. +// +// Amazon S3 on Outposts provides access to S3 on Outposts operations. +// +// See https://docs.aws.amazon.com/goto/WebAPI/s3outposts-2017-07-25 for more information on this service. +// +// See s3outposts package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/s3outposts/ +// +// Using the Client +// +// To contact Amazon S3 on Outposts with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the Amazon S3 on Outposts client S3Outposts for more +// information on creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/s3outposts/#New +package s3outposts diff --git a/service/s3outposts/errors.go b/service/s3outposts/errors.go new file mode 100644 index 00000000000..e34f1dd52f9 --- /dev/null +++ b/service/s3outposts/errors.go @@ -0,0 +1,48 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package s3outposts + +import ( + "github.com/aws/aws-sdk-go/private/protocol" +) + +const ( + + // ErrCodeAccessDeniedException for service response error code + // "AccessDeniedException". + // + // Access was denied for this action. + ErrCodeAccessDeniedException = "AccessDeniedException" + + // ErrCodeConflictException for service response error code + // "ConflictException". + // + // There was a conflict with this action, and it could not be completed. + ErrCodeConflictException = "ConflictException" + + // ErrCodeInternalServerException for service response error code + // "InternalServerException". + // + // There was an exception with the internal server. + ErrCodeInternalServerException = "InternalServerException" + + // ErrCodeResourceNotFoundException for service response error code + // "ResourceNotFoundException". + // + // The requested resource was not found. + ErrCodeResourceNotFoundException = "ResourceNotFoundException" + + // ErrCodeValidationException for service response error code + // "ValidationException". + // + // There was an exception validating this data. + ErrCodeValidationException = "ValidationException" +) + +var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ + "AccessDeniedException": newErrorAccessDeniedException, + "ConflictException": newErrorConflictException, + "InternalServerException": newErrorInternalServerException, + "ResourceNotFoundException": newErrorResourceNotFoundException, + "ValidationException": newErrorValidationException, +} diff --git a/service/s3outposts/s3outpostsiface/interface.go b/service/s3outposts/s3outpostsiface/interface.go new file mode 100644 index 00000000000..d07037b20ae --- /dev/null +++ b/service/s3outposts/s3outpostsiface/interface.go @@ -0,0 +1,79 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package s3outpostsiface provides an interface to enable mocking the Amazon S3 on Outposts service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package s3outpostsiface + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/service/s3outposts" +) + +// S3OutpostsAPI provides an interface to enable mocking the +// s3outposts.S3Outposts service client's API operation, +// paginators, and waiters. This make unit testing your code that calls out +// to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // Amazon S3 on Outposts. +// func myFunc(svc s3outpostsiface.S3OutpostsAPI) bool { +// // Make svc.CreateEndpoint request +// } +// +// func main() { +// sess := session.New() +// svc := s3outposts.New(sess) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockS3OutpostsClient struct { +// s3outpostsiface.S3OutpostsAPI +// } +// func (m *mockS3OutpostsClient) CreateEndpoint(input *s3outposts.CreateEndpointInput) (*s3outposts.CreateEndpointOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockS3OutpostsClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type S3OutpostsAPI interface { + CreateEndpoint(*s3outposts.CreateEndpointInput) (*s3outposts.CreateEndpointOutput, error) + CreateEndpointWithContext(aws.Context, *s3outposts.CreateEndpointInput, ...request.Option) (*s3outposts.CreateEndpointOutput, error) + CreateEndpointRequest(*s3outposts.CreateEndpointInput) (*request.Request, *s3outposts.CreateEndpointOutput) + + DeleteEndpoint(*s3outposts.DeleteEndpointInput) (*s3outposts.DeleteEndpointOutput, error) + DeleteEndpointWithContext(aws.Context, *s3outposts.DeleteEndpointInput, ...request.Option) (*s3outposts.DeleteEndpointOutput, error) + DeleteEndpointRequest(*s3outposts.DeleteEndpointInput) (*request.Request, *s3outposts.DeleteEndpointOutput) + + ListEndpoints(*s3outposts.ListEndpointsInput) (*s3outposts.ListEndpointsOutput, error) + ListEndpointsWithContext(aws.Context, *s3outposts.ListEndpointsInput, ...request.Option) (*s3outposts.ListEndpointsOutput, error) + ListEndpointsRequest(*s3outposts.ListEndpointsInput) (*request.Request, *s3outposts.ListEndpointsOutput) + + ListEndpointsPages(*s3outposts.ListEndpointsInput, func(*s3outposts.ListEndpointsOutput, bool) bool) error + ListEndpointsPagesWithContext(aws.Context, *s3outposts.ListEndpointsInput, func(*s3outposts.ListEndpointsOutput, bool) bool, ...request.Option) error +} + +var _ S3OutpostsAPI = (*s3outposts.S3Outposts)(nil) diff --git a/service/s3outposts/service.go b/service/s3outposts/service.go new file mode 100644 index 00000000000..7c849108036 --- /dev/null +++ b/service/s3outposts/service.go @@ -0,0 +1,104 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package s3outposts + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/client/metadata" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/aws/signer/v4" + "github.com/aws/aws-sdk-go/private/protocol" + "github.com/aws/aws-sdk-go/private/protocol/restjson" +) + +// S3Outposts provides the API operation methods for making requests to +// Amazon S3 on Outposts. See this package's package overview docs +// for details on the service. +// +// S3Outposts methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type S3Outposts struct { + *client.Client +} + +// Used for custom client initialization logic +var initClient func(*client.Client) + +// Used for custom request initialization logic +var initRequest func(*request.Request) + +// Service information constants +const ( + ServiceName = "S3Outposts" // Name of service. + EndpointsID = "s3-outposts" // ID to lookup a service endpoint with. + ServiceID = "S3Outposts" // ServiceID is a unique identifier of a specific service. +) + +// New creates a new instance of the S3Outposts client with a session. +// If additional configuration is needed for the client instance use the optional +// aws.Config parameter to add your extra config. +// +// Example: +// mySession := session.Must(session.NewSession()) +// +// // Create a S3Outposts client from just a session. +// svc := s3outposts.New(mySession) +// +// // Create a S3Outposts client with additional configuration +// svc := s3outposts.New(mySession, aws.NewConfig().WithRegion("us-west-2")) +func New(p client.ConfigProvider, cfgs ...*aws.Config) *S3Outposts { + c := p.ClientConfig(EndpointsID, cfgs...) + if c.SigningNameDerived || len(c.SigningName) == 0 { + c.SigningName = "s3-outposts" + } + return newClient(*c.Config, c.Handlers, c.PartitionID, c.Endpoint, c.SigningRegion, c.SigningName) +} + +// newClient creates, initializes and returns a new service client instance. +func newClient(cfg aws.Config, handlers request.Handlers, partitionID, endpoint, signingRegion, signingName string) *S3Outposts { + svc := &S3Outposts{ + Client: client.New( + cfg, + metadata.ClientInfo{ + ServiceName: ServiceName, + ServiceID: ServiceID, + SigningName: signingName, + SigningRegion: signingRegion, + PartitionID: partitionID, + Endpoint: endpoint, + APIVersion: "2017-07-25", + }, + handlers, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed( + protocol.NewUnmarshalErrorHandler(restjson.NewUnmarshalTypedError(exceptionFromCode)).NamedHandler(), + ) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc.Client) + } + + return svc +} + +// newRequest creates a new request for a S3Outposts operation and runs any +// custom request initialization. +func (c *S3Outposts) newRequest(op *request.Operation, params, data interface{}) *request.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(req) + } + + return req +} diff --git a/service/securityhub/api.go b/service/securityhub/api.go index f3db2b8f0e8..59d5d8f34f5 100644 --- a/service/securityhub/api.go +++ b/service/securityhub/api.go @@ -467,8 +467,8 @@ func (c *SecurityHub) BatchUpdateFindingsRequest(input *BatchUpdateFindingsInput // Updates from BatchUpdateFindings do not affect the value of UpdatedAt for // a finding. // -// Master accounts can use BatchUpdateFindings to update the following finding -// fields and objects. +// Master and member accounts can use BatchUpdateFindings to update the following +// finding fields and objects. // // * Confidence // @@ -488,7 +488,11 @@ func (c *SecurityHub) BatchUpdateFindingsRequest(input *BatchUpdateFindingsInput // // * Workflow // -// Member accounts can only use BatchUpdateFindings to update the Note object. +// You can configure IAM policies to restrict access to fields and field values. +// For example, you might not want member accounts to be able to suppress findings +// or change the finding severity. See Configuring access to BatchUpdateFindings +// (https://docs.aws.amazon.com/securityhub/latest/userguide/finding-update-batchupdatefindings.html#batchupdatefindings-configure-access) +// in the AWS Security Hub User Guide. // // 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 @@ -4916,5898 +4920,10256 @@ func (s *AvailabilityZone) SetZoneName(v string) *AvailabilityZone { return s } -// Provides details about an auto scaling group. -type AwsAutoScalingAutoScalingGroupDetails struct { +// Contains information about settings for logging access for the stage. +type AwsApiGatewayAccessLogSettings struct { _ struct{} `type:"structure"` - // Indicates when the auto scaling group was created. - // - // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time - // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot - // contain spaces. For example, 2020-03-22T13:22:13.933Z. - CreatedTime *string `type:"string"` - - // The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before - // it checks the health status of an EC2 instance that has come into service. - HealthCheckGracePeriod *int64 `type:"integer"` - - // The service to use for the health checks. - HealthCheckType *string `type:"string"` - - // The name of the launch configuration. - LaunchConfigurationName *string `type:"string"` + // The ARN of the CloudWatch Logs log group that receives the access logs. + DestinationArn *string `type:"string"` - // The list of load balancers associated with the group. - LoadBalancerNames []*string `type:"list"` + // A single-line format of the access logs of data, as specified by selected + // $context variables. The format must include at least $context.requestId. + Format *string `type:"string"` } // String returns the string representation -func (s AwsAutoScalingAutoScalingGroupDetails) String() string { +func (s AwsApiGatewayAccessLogSettings) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsAutoScalingAutoScalingGroupDetails) GoString() string { +func (s AwsApiGatewayAccessLogSettings) GoString() string { return s.String() } -// SetCreatedTime sets the CreatedTime field's value. -func (s *AwsAutoScalingAutoScalingGroupDetails) SetCreatedTime(v string) *AwsAutoScalingAutoScalingGroupDetails { - s.CreatedTime = &v - return s -} - -// SetHealthCheckGracePeriod sets the HealthCheckGracePeriod field's value. -func (s *AwsAutoScalingAutoScalingGroupDetails) SetHealthCheckGracePeriod(v int64) *AwsAutoScalingAutoScalingGroupDetails { - s.HealthCheckGracePeriod = &v - return s -} - -// SetHealthCheckType sets the HealthCheckType field's value. -func (s *AwsAutoScalingAutoScalingGroupDetails) SetHealthCheckType(v string) *AwsAutoScalingAutoScalingGroupDetails { - s.HealthCheckType = &v - return s -} - -// SetLaunchConfigurationName sets the LaunchConfigurationName field's value. -func (s *AwsAutoScalingAutoScalingGroupDetails) SetLaunchConfigurationName(v string) *AwsAutoScalingAutoScalingGroupDetails { - s.LaunchConfigurationName = &v +// SetDestinationArn sets the DestinationArn field's value. +func (s *AwsApiGatewayAccessLogSettings) SetDestinationArn(v string) *AwsApiGatewayAccessLogSettings { + s.DestinationArn = &v return s } -// SetLoadBalancerNames sets the LoadBalancerNames field's value. -func (s *AwsAutoScalingAutoScalingGroupDetails) SetLoadBalancerNames(v []*string) *AwsAutoScalingAutoScalingGroupDetails { - s.LoadBalancerNames = v +// SetFormat sets the Format field's value. +func (s *AwsApiGatewayAccessLogSettings) SetFormat(v string) *AwsApiGatewayAccessLogSettings { + s.Format = &v return s } -// A distribution configuration. -type AwsCloudFrontDistributionDetails struct { +// Contains information about settings for canary deployment in the stage. +type AwsApiGatewayCanarySettings struct { _ struct{} `type:"structure"` - // The domain name corresponding to the distribution. - DomainName *string `type:"string"` + // The deployment identifier for the canary deployment. + DeploymentId *string `type:"string"` - // The entity tag is a hash of the object. - ETag *string `type:"string"` + // The percentage of traffic that is diverted to a canary deployment. + PercentTraffic *float64 `type:"double"` - // Indicates when that the distribution was last modified. + // Stage variables that are overridden in the canary release deployment. The + // variables include new stage variables that are introduced in the canary. // - // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time - // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot - // contain spaces. For example, 2020-03-22T13:22:13.933Z. - LastModifiedTime *string `type:"string"` - - // A complex type that controls whether access logs are written for the distribution. - Logging *AwsCloudFrontDistributionLogging `type:"structure"` - - // A complex type that contains information about origins for this distribution. - Origins *AwsCloudFrontDistributionOrigins `type:"structure"` + // Each variable is represented as a string-to-string map between the stage + // variable name and the variable value. + StageVariableOverrides map[string]*string `type:"map"` - // Indicates the current status of the distribution. - Status *string `type:"string"` - - // A unique identifier that specifies the AWS WAF web ACL, if any, to associate - // with this distribution. - WebAclId *string `type:"string"` + // Indicates whether the canary deployment uses the stage cache. + UseStageCache *bool `type:"boolean"` } // String returns the string representation -func (s AwsCloudFrontDistributionDetails) String() string { +func (s AwsApiGatewayCanarySettings) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsCloudFrontDistributionDetails) GoString() string { +func (s AwsApiGatewayCanarySettings) GoString() string { return s.String() } -// SetDomainName sets the DomainName field's value. -func (s *AwsCloudFrontDistributionDetails) SetDomainName(v string) *AwsCloudFrontDistributionDetails { - s.DomainName = &v +// SetDeploymentId sets the DeploymentId field's value. +func (s *AwsApiGatewayCanarySettings) SetDeploymentId(v string) *AwsApiGatewayCanarySettings { + s.DeploymentId = &v return s } -// SetETag sets the ETag field's value. -func (s *AwsCloudFrontDistributionDetails) SetETag(v string) *AwsCloudFrontDistributionDetails { - s.ETag = &v +// SetPercentTraffic sets the PercentTraffic field's value. +func (s *AwsApiGatewayCanarySettings) SetPercentTraffic(v float64) *AwsApiGatewayCanarySettings { + s.PercentTraffic = &v return s } -// SetLastModifiedTime sets the LastModifiedTime field's value. -func (s *AwsCloudFrontDistributionDetails) SetLastModifiedTime(v string) *AwsCloudFrontDistributionDetails { - s.LastModifiedTime = &v +// SetStageVariableOverrides sets the StageVariableOverrides field's value. +func (s *AwsApiGatewayCanarySettings) SetStageVariableOverrides(v map[string]*string) *AwsApiGatewayCanarySettings { + s.StageVariableOverrides = v return s } -// SetLogging sets the Logging field's value. -func (s *AwsCloudFrontDistributionDetails) SetLogging(v *AwsCloudFrontDistributionLogging) *AwsCloudFrontDistributionDetails { - s.Logging = v +// SetUseStageCache sets the UseStageCache field's value. +func (s *AwsApiGatewayCanarySettings) SetUseStageCache(v bool) *AwsApiGatewayCanarySettings { + s.UseStageCache = &v return s } -// SetOrigins sets the Origins field's value. -func (s *AwsCloudFrontDistributionDetails) SetOrigins(v *AwsCloudFrontDistributionOrigins) *AwsCloudFrontDistributionDetails { - s.Origins = v - return s +// Contains information about the endpoints for the API. +type AwsApiGatewayEndpointConfiguration struct { + _ struct{} `type:"structure"` + + // A list of endpoint types for the REST API. + // + // For an edge-optimized API, the endpoint type is EDGE. For a Regional API, + // the endpoint type is REGIONAL. For a private API, the endpoint type is PRIVATE. + Types []*string `type:"list"` } -// SetStatus sets the Status field's value. -func (s *AwsCloudFrontDistributionDetails) SetStatus(v string) *AwsCloudFrontDistributionDetails { - s.Status = &v - return s +// String returns the string representation +func (s AwsApiGatewayEndpointConfiguration) String() string { + return awsutil.Prettify(s) } -// SetWebAclId sets the WebAclId field's value. -func (s *AwsCloudFrontDistributionDetails) SetWebAclId(v string) *AwsCloudFrontDistributionDetails { - s.WebAclId = &v +// GoString returns the string representation +func (s AwsApiGatewayEndpointConfiguration) GoString() string { + return s.String() +} + +// SetTypes sets the Types field's value. +func (s *AwsApiGatewayEndpointConfiguration) SetTypes(v []*string) *AwsApiGatewayEndpointConfiguration { + s.Types = v return s } -// A complex type that controls whether access logs are written for the distribution. -type AwsCloudFrontDistributionLogging struct { +// Defines settings for a method for the stage. +type AwsApiGatewayMethodSettings struct { _ struct{} `type:"structure"` - // The Amazon S3 bucket to store the access logs in. - Bucket *string `type:"string"` + // Indicates whether the cached responses are encrypted. + CacheDataEncrypted *bool `type:"boolean"` - // With this field, you can enable or disable the selected distribution. - Enabled *bool `type:"boolean"` + // Specifies the time to live (TTL), in seconds, for cached responses. The higher + // the TTL, the longer the response is cached. + CacheTtlInSeconds *int64 `type:"integer"` - // Specifies whether you want CloudFront to include cookies in access logs. - IncludeCookies *bool `type:"boolean"` + // Indicates whether responses are cached and returned for requests. For responses + // to be cached, a cache cluster must be enabled on the stage. + CachingEnabled *bool `type:"boolean"` - // An optional string that you want CloudFront to use as a prefix to the access - // log filenames for this distribution. - Prefix *string `type:"string"` + // Indicates whether data trace logging is enabled for the method. Data trace + // logging affects the log entries that are pushed to CloudWatch Logs. + DataTraceEnabled *bool `type:"boolean"` + + // The HTTP method. You can use an asterisk (*) as a wildcard to apply method + // settings to multiple methods. + HttpMethod *string `type:"string"` + + // The logging level for this method. The logging level affects the log entries + // that are pushed to CloudWatch Logs. + // + // If the logging level is ERROR, then the logs only include error-level entries. + // + // If the logging level is INFO, then the logs include both ERROR events and + // extra informational events. + // + // Valid values: OFF | ERROR | INFO + LoggingLevel *string `type:"string"` + + // Indicates whether CloudWatch metrics are enabled for the method. + MetricsEnabled *bool `type:"boolean"` + + // Indicates whether authorization is required for a cache invalidation request. + RequireAuthorizationForCacheControl *bool `type:"boolean"` + + // The resource path for this method. Forward slashes (/) are encoded as ~1 + // . The initial slash must include a forward slash. + // + // For example, the path value /resource/subresource must be encoded as /~1resource~1subresource. + // + // To specify the root path, use only a slash (/). You can use an asterisk (*) + // as a wildcard to apply method settings to multiple methods. + ResourcePath *string `type:"string"` + + // The throttling burst limit for the method. + ThrottlingBurstLimit *int64 `type:"integer"` + + // The throttling rate limit for the method. + ThrottlingRateLimit *float64 `type:"double"` + + // Indicates how to handle unauthorized requests for cache invalidation. + // + // Valid values: FAIL_WITH_403 | SUCCEED_WITH_RESPONSE_HEADER | SUCCEED_WITHOUT_RESPONSE_HEADER + UnauthorizedCacheControlHeaderStrategy *string `type:"string"` } // String returns the string representation -func (s AwsCloudFrontDistributionLogging) String() string { +func (s AwsApiGatewayMethodSettings) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsCloudFrontDistributionLogging) GoString() string { +func (s AwsApiGatewayMethodSettings) GoString() string { return s.String() } -// SetBucket sets the Bucket field's value. -func (s *AwsCloudFrontDistributionLogging) SetBucket(v string) *AwsCloudFrontDistributionLogging { - s.Bucket = &v +// SetCacheDataEncrypted sets the CacheDataEncrypted field's value. +func (s *AwsApiGatewayMethodSettings) SetCacheDataEncrypted(v bool) *AwsApiGatewayMethodSettings { + s.CacheDataEncrypted = &v return s } -// SetEnabled sets the Enabled field's value. -func (s *AwsCloudFrontDistributionLogging) SetEnabled(v bool) *AwsCloudFrontDistributionLogging { - s.Enabled = &v +// SetCacheTtlInSeconds sets the CacheTtlInSeconds field's value. +func (s *AwsApiGatewayMethodSettings) SetCacheTtlInSeconds(v int64) *AwsApiGatewayMethodSettings { + s.CacheTtlInSeconds = &v return s } -// SetIncludeCookies sets the IncludeCookies field's value. -func (s *AwsCloudFrontDistributionLogging) SetIncludeCookies(v bool) *AwsCloudFrontDistributionLogging { - s.IncludeCookies = &v +// SetCachingEnabled sets the CachingEnabled field's value. +func (s *AwsApiGatewayMethodSettings) SetCachingEnabled(v bool) *AwsApiGatewayMethodSettings { + s.CachingEnabled = &v return s } -// SetPrefix sets the Prefix field's value. -func (s *AwsCloudFrontDistributionLogging) SetPrefix(v string) *AwsCloudFrontDistributionLogging { - s.Prefix = &v +// SetDataTraceEnabled sets the DataTraceEnabled field's value. +func (s *AwsApiGatewayMethodSettings) SetDataTraceEnabled(v bool) *AwsApiGatewayMethodSettings { + s.DataTraceEnabled = &v return s } -// A complex type that describes the Amazon S3 bucket, HTTP server (for example, -// a web server), Amazon Elemental MediaStore, or other server from which CloudFront -// gets your files. -type AwsCloudFrontDistributionOriginItem struct { - _ struct{} `type:"structure"` - - // Amazon S3 origins: The DNS name of the Amazon S3 bucket from which you want - // CloudFront to get objects for this origin. - DomainName *string `type:"string"` - - // A unique identifier for the origin or origin group. - Id *string `type:"string"` - - // An optional element that causes CloudFront to request your content from a - // directory in your Amazon S3 bucket or your custom origin. - OriginPath *string `type:"string"` -} - -// String returns the string representation -func (s AwsCloudFrontDistributionOriginItem) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AwsCloudFrontDistributionOriginItem) GoString() string { - return s.String() +// SetHttpMethod sets the HttpMethod field's value. +func (s *AwsApiGatewayMethodSettings) SetHttpMethod(v string) *AwsApiGatewayMethodSettings { + s.HttpMethod = &v + return s } -// SetDomainName sets the DomainName field's value. -func (s *AwsCloudFrontDistributionOriginItem) SetDomainName(v string) *AwsCloudFrontDistributionOriginItem { - s.DomainName = &v +// SetLoggingLevel sets the LoggingLevel field's value. +func (s *AwsApiGatewayMethodSettings) SetLoggingLevel(v string) *AwsApiGatewayMethodSettings { + s.LoggingLevel = &v return s } -// SetId sets the Id field's value. -func (s *AwsCloudFrontDistributionOriginItem) SetId(v string) *AwsCloudFrontDistributionOriginItem { - s.Id = &v +// SetMetricsEnabled sets the MetricsEnabled field's value. +func (s *AwsApiGatewayMethodSettings) SetMetricsEnabled(v bool) *AwsApiGatewayMethodSettings { + s.MetricsEnabled = &v return s } -// SetOriginPath sets the OriginPath field's value. -func (s *AwsCloudFrontDistributionOriginItem) SetOriginPath(v string) *AwsCloudFrontDistributionOriginItem { - s.OriginPath = &v +// SetRequireAuthorizationForCacheControl sets the RequireAuthorizationForCacheControl field's value. +func (s *AwsApiGatewayMethodSettings) SetRequireAuthorizationForCacheControl(v bool) *AwsApiGatewayMethodSettings { + s.RequireAuthorizationForCacheControl = &v return s } -// A complex type that contains information about origins and origin groups -// for this distribution. -type AwsCloudFrontDistributionOrigins struct { - _ struct{} `type:"structure"` - - // A complex type that contains origins or origin groups for this distribution. - Items []*AwsCloudFrontDistributionOriginItem `type:"list"` +// SetResourcePath sets the ResourcePath field's value. +func (s *AwsApiGatewayMethodSettings) SetResourcePath(v string) *AwsApiGatewayMethodSettings { + s.ResourcePath = &v + return s } -// String returns the string representation -func (s AwsCloudFrontDistributionOrigins) String() string { - return awsutil.Prettify(s) +// SetThrottlingBurstLimit sets the ThrottlingBurstLimit field's value. +func (s *AwsApiGatewayMethodSettings) SetThrottlingBurstLimit(v int64) *AwsApiGatewayMethodSettings { + s.ThrottlingBurstLimit = &v + return s } -// GoString returns the string representation -func (s AwsCloudFrontDistributionOrigins) GoString() string { - return s.String() +// SetThrottlingRateLimit sets the ThrottlingRateLimit field's value. +func (s *AwsApiGatewayMethodSettings) SetThrottlingRateLimit(v float64) *AwsApiGatewayMethodSettings { + s.ThrottlingRateLimit = &v + return s } -// SetItems sets the Items field's value. -func (s *AwsCloudFrontDistributionOrigins) SetItems(v []*AwsCloudFrontDistributionOriginItem) *AwsCloudFrontDistributionOrigins { - s.Items = v +// SetUnauthorizedCacheControlHeaderStrategy sets the UnauthorizedCacheControlHeaderStrategy field's value. +func (s *AwsApiGatewayMethodSettings) SetUnauthorizedCacheControlHeaderStrategy(v string) *AwsApiGatewayMethodSettings { + s.UnauthorizedCacheControlHeaderStrategy = &v return s } -// Information about an AWS CodeBuild project. -type AwsCodeBuildProjectDetails struct { +// contains information about a REST API in version 1 of Amazon API Gateway. +type AwsApiGatewayRestApiDetails struct { _ struct{} `type:"structure"` - // The AWS Key Management Service (AWS KMS) customer master key (CMK) used to - // encrypt the build output artifacts. + // The source of the API key for metering requests according to a usage plan. // - // You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, - // the CMK alias (using the format alias/alias-name). - EncryptionKey *string `type:"string"` + // HEADER indicates whether to read the API key from the X-API-Key header of + // a request. + // + // AUTHORIZER indicates whether to read the API key from the UsageIdentifierKey + // from a custom authorizer. + ApiKeySource *string `type:"string"` - // Information about the build environment for this build project. - Environment *AwsCodeBuildProjectEnvironment `type:"structure"` + // The list of binary media types supported by the REST API. + BinaryMediaTypes []*string `type:"list"` - // The name of the build project. - Name *string `type:"string"` + // Indicates when the API was created. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + CreatedDate *string `type:"string"` - // The ARN of the IAM role that enables AWS CodeBuild to interact with dependent - // AWS services on behalf of the AWS account. - ServiceRole *string `type:"string"` + // A description of the REST API. + Description *string `type:"string"` - // Information about the build input source code for this build project. - Source *AwsCodeBuildProjectSource `type:"structure"` + // The endpoint configuration of the REST API. + EndpointConfiguration *AwsApiGatewayEndpointConfiguration `type:"structure"` - // Information about the VPC configuration that AWS CodeBuild accesses. - VpcConfig *AwsCodeBuildProjectVpcConfig `type:"structure"` + // The identifier of the REST API. + Id *string `type:"string"` + + // The minimum size in bytes of a payload before compression is enabled. + // + // If null, then compression is disabled. + // + // If 0, then all payloads are compressed. + MinimumCompressionSize *int64 `type:"integer"` + + // The name of the REST API. + Name *string `type:"string"` + + // The version identifier for the REST API. + Version *string `type:"string"` } // String returns the string representation -func (s AwsCodeBuildProjectDetails) String() string { +func (s AwsApiGatewayRestApiDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsCodeBuildProjectDetails) GoString() string { +func (s AwsApiGatewayRestApiDetails) GoString() string { return s.String() } -// SetEncryptionKey sets the EncryptionKey field's value. -func (s *AwsCodeBuildProjectDetails) SetEncryptionKey(v string) *AwsCodeBuildProjectDetails { - s.EncryptionKey = &v +// SetApiKeySource sets the ApiKeySource field's value. +func (s *AwsApiGatewayRestApiDetails) SetApiKeySource(v string) *AwsApiGatewayRestApiDetails { + s.ApiKeySource = &v return s } -// SetEnvironment sets the Environment field's value. -func (s *AwsCodeBuildProjectDetails) SetEnvironment(v *AwsCodeBuildProjectEnvironment) *AwsCodeBuildProjectDetails { - s.Environment = v +// SetBinaryMediaTypes sets the BinaryMediaTypes field's value. +func (s *AwsApiGatewayRestApiDetails) SetBinaryMediaTypes(v []*string) *AwsApiGatewayRestApiDetails { + s.BinaryMediaTypes = v return s } -// SetName sets the Name field's value. -func (s *AwsCodeBuildProjectDetails) SetName(v string) *AwsCodeBuildProjectDetails { - s.Name = &v +// SetCreatedDate sets the CreatedDate field's value. +func (s *AwsApiGatewayRestApiDetails) SetCreatedDate(v string) *AwsApiGatewayRestApiDetails { + s.CreatedDate = &v return s } -// SetServiceRole sets the ServiceRole field's value. -func (s *AwsCodeBuildProjectDetails) SetServiceRole(v string) *AwsCodeBuildProjectDetails { - s.ServiceRole = &v +// SetDescription sets the Description field's value. +func (s *AwsApiGatewayRestApiDetails) SetDescription(v string) *AwsApiGatewayRestApiDetails { + s.Description = &v return s } -// SetSource sets the Source field's value. -func (s *AwsCodeBuildProjectDetails) SetSource(v *AwsCodeBuildProjectSource) *AwsCodeBuildProjectDetails { - s.Source = v +// SetEndpointConfiguration sets the EndpointConfiguration field's value. +func (s *AwsApiGatewayRestApiDetails) SetEndpointConfiguration(v *AwsApiGatewayEndpointConfiguration) *AwsApiGatewayRestApiDetails { + s.EndpointConfiguration = v return s } -// SetVpcConfig sets the VpcConfig field's value. -func (s *AwsCodeBuildProjectDetails) SetVpcConfig(v *AwsCodeBuildProjectVpcConfig) *AwsCodeBuildProjectDetails { - s.VpcConfig = v +// SetId sets the Id field's value. +func (s *AwsApiGatewayRestApiDetails) SetId(v string) *AwsApiGatewayRestApiDetails { + s.Id = &v return s } -// Information about the build environment for this build project. -type AwsCodeBuildProjectEnvironment struct { +// SetMinimumCompressionSize sets the MinimumCompressionSize field's value. +func (s *AwsApiGatewayRestApiDetails) SetMinimumCompressionSize(v int64) *AwsApiGatewayRestApiDetails { + s.MinimumCompressionSize = &v + return s +} + +// SetName sets the Name field's value. +func (s *AwsApiGatewayRestApiDetails) SetName(v string) *AwsApiGatewayRestApiDetails { + s.Name = &v + return s +} + +// SetVersion sets the Version field's value. +func (s *AwsApiGatewayRestApiDetails) SetVersion(v string) *AwsApiGatewayRestApiDetails { + s.Version = &v + return s +} + +// Provides information about a version 1 Amazon API Gateway stage. +type AwsApiGatewayStageDetails struct { _ struct{} `type:"structure"` - // The certificate to use with this build project. - Certificate *string `type:"string"` + // Settings for logging access for the stage. + AccessLogSettings *AwsApiGatewayAccessLogSettings `type:"structure"` - // The type of credentials AWS CodeBuild uses to pull images in your build. - // - // Valid values: - // - // * CODEBUILD specifies that AWS CodeBuild uses its own credentials. This - // requires that you modify your ECR repository policy to trust the AWS CodeBuild - // service principal. + // Indicates whether a cache cluster is enabled for the stage. + CacheClusterEnabled *bool `type:"boolean"` + + // If a cache cluster is enabled, the size of the cache cluster. + CacheClusterSize *string `type:"string"` + + // If a cache cluster is enabled, the status of the cache cluster. + CacheClusterStatus *string `type:"string"` + + // Information about settings for canary deployment in the stage. + CanarySettings *AwsApiGatewayCanarySettings `type:"structure"` + + // The identifier of the client certificate for the stage. + ClientCertificateId *string `type:"string"` + + // Indicates when the stage was created. // - // * SERVICE_ROLE specifies that AWS CodeBuild uses your build project's - // service role. + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + CreatedDate *string `type:"string"` + + // The identifier of the deployment that the stage points to. + DeploymentId *string `type:"string"` + + // A description of the stage. + Description *string `type:"string"` + + // The version of the API documentation that is associated with the stage. + DocumentationVersion *string `type:"string"` + + // Indicates when the stage was most recently updated. // - // When you use a cross-account or private registry image, you must use SERVICE_ROLE - // credentials. When you use an AWS CodeBuild curated image, you must use CODEBUILD - // credentials. - ImagePullCredentialsType *string `type:"string"` + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + LastUpdatedDate *string `type:"string"` - // The credentials for access to a private registry. - RegistryCredential *AwsCodeBuildProjectEnvironmentRegistryCredential `type:"structure"` + // Defines the method settings for the stage. + MethodSettings []*AwsApiGatewayMethodSettings `type:"list"` - // The type of build environment to use for related builds. + // The name of the stage. + StageName *string `type:"string"` + + // Indicates whether active tracing with AWS X-Ray is enabled for the stage. + TracingEnabled *bool `type:"boolean"` + + // A map that defines the stage variables for the stage. // - // The environment type ARM_CONTAINER is available only in Regions US East (N. - // Virginia), US East (Ohio), US West (Oregon), Europe (Ireland), Asia Pacific - // (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and Europe (Frankfurt). + // Variable names can have alphanumeric and underscore characters. // - // The environment type LINUX_CONTAINER with compute type build.general1.2xlarge - // is available only in Regions US East (N. Virginia), US East (N. Virginia), - // US West (Oregon), Canada (Central), Europe (Ireland), Europe (London), Europe - // (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific (Singapore), - // Asia Pacific (Sydney), China (Beijing), and China (Ningxia). + // Variable values can contain the following characters: // - // The environment type LINUX_GPU_CONTAINER is available only in Regions US - // East (N. Virginia), US East (N. Virginia), US West (Oregon), Canada (Central), - // Europe (Ireland), Europe (London), Europe (Frankfurt), Asia Pacific (Tokyo), - // Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), China - // (Beijing), and China (Ningxia). + // * Uppercase and lowercase letters // - // Valid values: WINDOWS_CONTAINER | LINUX_CONTAINER | LINUX_GPU_CONTAINER | - // ARM_CONTAINER - Type *string `type:"string"` + // * Numbers + // + // * Special characters -._~:/?#&=, + Variables map[string]*string `type:"map"` + + // The ARN of the web ACL associated with the stage. + WebAclArn *string `type:"string"` } // String returns the string representation -func (s AwsCodeBuildProjectEnvironment) String() string { +func (s AwsApiGatewayStageDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsCodeBuildProjectEnvironment) GoString() string { +func (s AwsApiGatewayStageDetails) GoString() string { return s.String() } -// SetCertificate sets the Certificate field's value. -func (s *AwsCodeBuildProjectEnvironment) SetCertificate(v string) *AwsCodeBuildProjectEnvironment { - s.Certificate = &v +// SetAccessLogSettings sets the AccessLogSettings field's value. +func (s *AwsApiGatewayStageDetails) SetAccessLogSettings(v *AwsApiGatewayAccessLogSettings) *AwsApiGatewayStageDetails { + s.AccessLogSettings = v return s } -// SetImagePullCredentialsType sets the ImagePullCredentialsType field's value. -func (s *AwsCodeBuildProjectEnvironment) SetImagePullCredentialsType(v string) *AwsCodeBuildProjectEnvironment { - s.ImagePullCredentialsType = &v +// SetCacheClusterEnabled sets the CacheClusterEnabled field's value. +func (s *AwsApiGatewayStageDetails) SetCacheClusterEnabled(v bool) *AwsApiGatewayStageDetails { + s.CacheClusterEnabled = &v return s } -// SetRegistryCredential sets the RegistryCredential field's value. -func (s *AwsCodeBuildProjectEnvironment) SetRegistryCredential(v *AwsCodeBuildProjectEnvironmentRegistryCredential) *AwsCodeBuildProjectEnvironment { - s.RegistryCredential = v +// SetCacheClusterSize sets the CacheClusterSize field's value. +func (s *AwsApiGatewayStageDetails) SetCacheClusterSize(v string) *AwsApiGatewayStageDetails { + s.CacheClusterSize = &v return s } -// SetType sets the Type field's value. -func (s *AwsCodeBuildProjectEnvironment) SetType(v string) *AwsCodeBuildProjectEnvironment { - s.Type = &v +// SetCacheClusterStatus sets the CacheClusterStatus field's value. +func (s *AwsApiGatewayStageDetails) SetCacheClusterStatus(v string) *AwsApiGatewayStageDetails { + s.CacheClusterStatus = &v return s } -// The credentials for access to a private registry. -type AwsCodeBuildProjectEnvironmentRegistryCredential struct { - _ struct{} `type:"structure"` +// SetCanarySettings sets the CanarySettings field's value. +func (s *AwsApiGatewayStageDetails) SetCanarySettings(v *AwsApiGatewayCanarySettings) *AwsApiGatewayStageDetails { + s.CanarySettings = v + return s +} - // The Amazon Resource Name (ARN) or name of credentials created using AWS Secrets - // Manager. - // - // The credential can use the name of the credentials only if they exist in - // your current AWS Region. - Credential *string `type:"string"` +// SetClientCertificateId sets the ClientCertificateId field's value. +func (s *AwsApiGatewayStageDetails) SetClientCertificateId(v string) *AwsApiGatewayStageDetails { + s.ClientCertificateId = &v + return s +} - // The service that created the credentials to access a private Docker registry. - // - // The valid value,SECRETS_MANAGER, is for AWS Secrets Manager. - CredentialProvider *string `type:"string"` +// SetCreatedDate sets the CreatedDate field's value. +func (s *AwsApiGatewayStageDetails) SetCreatedDate(v string) *AwsApiGatewayStageDetails { + s.CreatedDate = &v + return s } -// String returns the string representation -func (s AwsCodeBuildProjectEnvironmentRegistryCredential) String() string { - return awsutil.Prettify(s) +// SetDeploymentId sets the DeploymentId field's value. +func (s *AwsApiGatewayStageDetails) SetDeploymentId(v string) *AwsApiGatewayStageDetails { + s.DeploymentId = &v + return s } -// GoString returns the string representation -func (s AwsCodeBuildProjectEnvironmentRegistryCredential) GoString() string { - return s.String() +// SetDescription sets the Description field's value. +func (s *AwsApiGatewayStageDetails) SetDescription(v string) *AwsApiGatewayStageDetails { + s.Description = &v + return s } -// SetCredential sets the Credential field's value. -func (s *AwsCodeBuildProjectEnvironmentRegistryCredential) SetCredential(v string) *AwsCodeBuildProjectEnvironmentRegistryCredential { - s.Credential = &v +// SetDocumentationVersion sets the DocumentationVersion field's value. +func (s *AwsApiGatewayStageDetails) SetDocumentationVersion(v string) *AwsApiGatewayStageDetails { + s.DocumentationVersion = &v return s } -// SetCredentialProvider sets the CredentialProvider field's value. -func (s *AwsCodeBuildProjectEnvironmentRegistryCredential) SetCredentialProvider(v string) *AwsCodeBuildProjectEnvironmentRegistryCredential { - s.CredentialProvider = &v +// SetLastUpdatedDate sets the LastUpdatedDate field's value. +func (s *AwsApiGatewayStageDetails) SetLastUpdatedDate(v string) *AwsApiGatewayStageDetails { + s.LastUpdatedDate = &v return s } -// Information about the build input source code for this build project. -type AwsCodeBuildProjectSource struct { - _ struct{} `type:"structure"` +// SetMethodSettings sets the MethodSettings field's value. +func (s *AwsApiGatewayStageDetails) SetMethodSettings(v []*AwsApiGatewayMethodSettings) *AwsApiGatewayStageDetails { + s.MethodSettings = v + return s +} - // Information about the Git clone depth for the build project. - GitCloneDepth *int64 `type:"integer"` +// SetStageName sets the StageName field's value. +func (s *AwsApiGatewayStageDetails) SetStageName(v string) *AwsApiGatewayStageDetails { + s.StageName = &v + return s +} - // Whether to ignore SSL warnings while connecting to the project source code. - InsecureSsl *bool `type:"boolean"` +// SetTracingEnabled sets the TracingEnabled field's value. +func (s *AwsApiGatewayStageDetails) SetTracingEnabled(v bool) *AwsApiGatewayStageDetails { + s.TracingEnabled = &v + return s +} - // Information about the location of the source code to be built. - // - // Valid values include: - // - // * For source code settings that are specified in the source action of - // a pipeline in AWS CodePipeline, location should not be specified. If it - // is specified, AWS CodePipeline ignores it. This is because AWS CodePipeline - // uses the settings in a pipeline's source action instead of this value. - // - // * For source code in an AWS CodeCommit repository, the HTTPS clone URL - // to the repository that contains the source code and the build spec file - // (for example, https://git-codecommit.region-ID.amazonaws.com/v1/repos/repo-name - // ). - // - // * For source code in an S3 input bucket, one of the following. The path - // to the ZIP file that contains the source code (for example, bucket-name/path/to/object-name.zip). - // The path to the folder that contains the source code (for example, bucket-name/path/to/source-code/folder/). - // - // * For source code in a GitHub repository, the HTTPS clone URL to the repository - // that contains the source and the build spec file. - // - // * For source code in a Bitbucket repository, the HTTPS clone URL to the - // repository that contains the source and the build spec file. - Location *string `type:"string"` +// SetVariables sets the Variables field's value. +func (s *AwsApiGatewayStageDetails) SetVariables(v map[string]*string) *AwsApiGatewayStageDetails { + s.Variables = v + return s +} - // The type of repository that contains the source code to be built. Valid values - // are: - // - // * BITBUCKET - The source code is in a Bitbucket repository. +// SetWebAclArn sets the WebAclArn field's value. +func (s *AwsApiGatewayStageDetails) SetWebAclArn(v string) *AwsApiGatewayStageDetails { + s.WebAclArn = &v + return s +} + +// Contains information about a version 2 API in Amazon API Gateway. +type AwsApiGatewayV2ApiDetails struct { + _ struct{} `type:"structure"` + + // The URI of the API. // - // * CODECOMMIT - The source code is in an AWS CodeCommit repository. + // Uses the format .execute-api..amazonaws.com // - // * CODEPIPELINE - The source code settings are specified in the source - // action of a pipeline in AWS CodePipeline. + // The stage name is typically appended to the URI to form a complete path to + // a deployed API stage. + ApiEndpoint *string `type:"string"` + + // The identifier of the API. + ApiId *string `type:"string"` + + // An API key selection expression. Supported only for WebSocket APIs. + ApiKeySelectionExpression *string `type:"string"` + + // A cross-origin resource sharing (CORS) configuration. Supported only for + // HTTP APIs. + CorsConfiguration *AwsCorsConfiguration `type:"structure"` + + // Indicates when the API was created. // - // * GITHUB - The source code is in a GitHub repository. + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + CreatedDate *string `type:"string"` + + // A description of the API. + Description *string `type:"string"` + + // The name of the API. + Name *string `type:"string"` + + // The API protocol for the API. // - // * GITHUB_ENTERPRISE - The source code is in a GitHub Enterprise repository. + // Valid values: WEBSOCKET | HTTP + ProtocolType *string `type:"string"` + + // The route selection expression for the API. // - // * NO_SOURCE - The project does not have input source code. + // For HTTP APIs, must be ${request.method} ${request.path}. This is the default + // value for HTTP APIs. // - // * S3 - The source code is in an S3 input bucket. - Type *string `type:"string"` + // For WebSocket APIs, there is no default value. + RouteSelectionExpression *string `type:"string"` + + // The version identifier for the API. + Version *string `type:"string"` } // String returns the string representation -func (s AwsCodeBuildProjectSource) String() string { +func (s AwsApiGatewayV2ApiDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsCodeBuildProjectSource) GoString() string { +func (s AwsApiGatewayV2ApiDetails) GoString() string { return s.String() } -// SetGitCloneDepth sets the GitCloneDepth field's value. -func (s *AwsCodeBuildProjectSource) SetGitCloneDepth(v int64) *AwsCodeBuildProjectSource { - s.GitCloneDepth = &v +// SetApiEndpoint sets the ApiEndpoint field's value. +func (s *AwsApiGatewayV2ApiDetails) SetApiEndpoint(v string) *AwsApiGatewayV2ApiDetails { + s.ApiEndpoint = &v return s } -// SetInsecureSsl sets the InsecureSsl field's value. -func (s *AwsCodeBuildProjectSource) SetInsecureSsl(v bool) *AwsCodeBuildProjectSource { - s.InsecureSsl = &v +// SetApiId sets the ApiId field's value. +func (s *AwsApiGatewayV2ApiDetails) SetApiId(v string) *AwsApiGatewayV2ApiDetails { + s.ApiId = &v return s } -// SetLocation sets the Location field's value. -func (s *AwsCodeBuildProjectSource) SetLocation(v string) *AwsCodeBuildProjectSource { - s.Location = &v +// SetApiKeySelectionExpression sets the ApiKeySelectionExpression field's value. +func (s *AwsApiGatewayV2ApiDetails) SetApiKeySelectionExpression(v string) *AwsApiGatewayV2ApiDetails { + s.ApiKeySelectionExpression = &v return s } -// SetType sets the Type field's value. -func (s *AwsCodeBuildProjectSource) SetType(v string) *AwsCodeBuildProjectSource { - s.Type = &v +// SetCorsConfiguration sets the CorsConfiguration field's value. +func (s *AwsApiGatewayV2ApiDetails) SetCorsConfiguration(v *AwsCorsConfiguration) *AwsApiGatewayV2ApiDetails { + s.CorsConfiguration = v return s } -// Information about the VPC configuration that AWS CodeBuild accesses. -type AwsCodeBuildProjectVpcConfig struct { - _ struct{} `type:"structure"` - - // A list of one or more security group IDs in your Amazon VPC. - SecurityGroupIds []*string `type:"list"` - - // A list of one or more subnet IDs in your Amazon VPC. - Subnets []*string `type:"list"` - - // The ID of the VPC. - VpcId *string `type:"string"` +// SetCreatedDate sets the CreatedDate field's value. +func (s *AwsApiGatewayV2ApiDetails) SetCreatedDate(v string) *AwsApiGatewayV2ApiDetails { + s.CreatedDate = &v + return s } -// String returns the string representation -func (s AwsCodeBuildProjectVpcConfig) String() string { - return awsutil.Prettify(s) +// SetDescription sets the Description field's value. +func (s *AwsApiGatewayV2ApiDetails) SetDescription(v string) *AwsApiGatewayV2ApiDetails { + s.Description = &v + return s } -// GoString returns the string representation -func (s AwsCodeBuildProjectVpcConfig) GoString() string { - return s.String() +// SetName sets the Name field's value. +func (s *AwsApiGatewayV2ApiDetails) SetName(v string) *AwsApiGatewayV2ApiDetails { + s.Name = &v + return s } -// SetSecurityGroupIds sets the SecurityGroupIds field's value. -func (s *AwsCodeBuildProjectVpcConfig) SetSecurityGroupIds(v []*string) *AwsCodeBuildProjectVpcConfig { - s.SecurityGroupIds = v +// SetProtocolType sets the ProtocolType field's value. +func (s *AwsApiGatewayV2ApiDetails) SetProtocolType(v string) *AwsApiGatewayV2ApiDetails { + s.ProtocolType = &v return s } -// SetSubnets sets the Subnets field's value. -func (s *AwsCodeBuildProjectVpcConfig) SetSubnets(v []*string) *AwsCodeBuildProjectVpcConfig { - s.Subnets = v +// SetRouteSelectionExpression sets the RouteSelectionExpression field's value. +func (s *AwsApiGatewayV2ApiDetails) SetRouteSelectionExpression(v string) *AwsApiGatewayV2ApiDetails { + s.RouteSelectionExpression = &v return s } -// SetVpcId sets the VpcId field's value. -func (s *AwsCodeBuildProjectVpcConfig) SetVpcId(v string) *AwsCodeBuildProjectVpcConfig { - s.VpcId = &v +// SetVersion sets the Version field's value. +func (s *AwsApiGatewayV2ApiDetails) SetVersion(v string) *AwsApiGatewayV2ApiDetails { + s.Version = &v return s } -// Contains a definition of an attribute for the table. -type AwsDynamoDbTableAttributeDefinition struct { +// Contains route settings for a stage. +type AwsApiGatewayV2RouteSettings struct { _ struct{} `type:"structure"` - // The name of the attribute. - AttributeName *string `type:"string"` + // Indicates whether data trace logging is enabled. Data trace logging affects + // the log entries that are pushed to CloudWatch Logs. Supported only for WebSocket + // APIs. + DataTraceEnabled *bool `type:"boolean"` - // The type of the attribute. - AttributeType *string `type:"string"` + // Indicates whether detailed metrics are enabled. + DetailedMetricsEnabled *bool `type:"boolean"` + + // The logging level. The logging level affects the log entries that are pushed + // to CloudWatch Logs. Supported only for WebSocket APIs. + // + // If the logging level is ERROR, then the logs only include error-level entries. + // + // If the logging level is INFO, then the logs include both ERROR events and + // extra informational events. + // + // Valid values: OFF | ERROR | INFO + LoggingLevel *string `type:"string"` + + // The throttling burst limit. + ThrottlingBurstLimit *int64 `type:"integer"` + + // The throttling rate limit. + ThrottlingRateLimit *float64 `type:"double"` } // String returns the string representation -func (s AwsDynamoDbTableAttributeDefinition) String() string { +func (s AwsApiGatewayV2RouteSettings) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsDynamoDbTableAttributeDefinition) GoString() string { +func (s AwsApiGatewayV2RouteSettings) GoString() string { return s.String() } -// SetAttributeName sets the AttributeName field's value. -func (s *AwsDynamoDbTableAttributeDefinition) SetAttributeName(v string) *AwsDynamoDbTableAttributeDefinition { - s.AttributeName = &v +// SetDataTraceEnabled sets the DataTraceEnabled field's value. +func (s *AwsApiGatewayV2RouteSettings) SetDataTraceEnabled(v bool) *AwsApiGatewayV2RouteSettings { + s.DataTraceEnabled = &v return s } -// SetAttributeType sets the AttributeType field's value. -func (s *AwsDynamoDbTableAttributeDefinition) SetAttributeType(v string) *AwsDynamoDbTableAttributeDefinition { - s.AttributeType = &v +// SetDetailedMetricsEnabled sets the DetailedMetricsEnabled field's value. +func (s *AwsApiGatewayV2RouteSettings) SetDetailedMetricsEnabled(v bool) *AwsApiGatewayV2RouteSettings { + s.DetailedMetricsEnabled = &v return s } -// Provides information about the billing for read/write capacity on the table. -type AwsDynamoDbTableBillingModeSummary struct { - _ struct{} `type:"structure"` - - // The method used to charge for read and write throughput and to manage capacity. - BillingMode *string `type:"string"` - - // If the billing mode is PAY_PER_REQUEST, indicates when the billing mode was - // set to that value. - // - // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time - // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot - // contain spaces. For example, 2020-03-22T13:22:13.933Z. - LastUpdateToPayPerRequestDateTime *string `type:"string"` -} - -// String returns the string representation -func (s AwsDynamoDbTableBillingModeSummary) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AwsDynamoDbTableBillingModeSummary) GoString() string { - return s.String() +// SetLoggingLevel sets the LoggingLevel field's value. +func (s *AwsApiGatewayV2RouteSettings) SetLoggingLevel(v string) *AwsApiGatewayV2RouteSettings { + s.LoggingLevel = &v + return s } -// SetBillingMode sets the BillingMode field's value. -func (s *AwsDynamoDbTableBillingModeSummary) SetBillingMode(v string) *AwsDynamoDbTableBillingModeSummary { - s.BillingMode = &v +// SetThrottlingBurstLimit sets the ThrottlingBurstLimit field's value. +func (s *AwsApiGatewayV2RouteSettings) SetThrottlingBurstLimit(v int64) *AwsApiGatewayV2RouteSettings { + s.ThrottlingBurstLimit = &v return s } -// SetLastUpdateToPayPerRequestDateTime sets the LastUpdateToPayPerRequestDateTime field's value. -func (s *AwsDynamoDbTableBillingModeSummary) SetLastUpdateToPayPerRequestDateTime(v string) *AwsDynamoDbTableBillingModeSummary { - s.LastUpdateToPayPerRequestDateTime = &v +// SetThrottlingRateLimit sets the ThrottlingRateLimit field's value. +func (s *AwsApiGatewayV2RouteSettings) SetThrottlingRateLimit(v float64) *AwsApiGatewayV2RouteSettings { + s.ThrottlingRateLimit = &v return s } -// Provides details about a DynamoDB table. -type AwsDynamoDbTableDetails struct { +// Contains information about a version 2 stage for Amazon API Gateway. +type AwsApiGatewayV2StageDetails struct { _ struct{} `type:"structure"` - // A list of attribute definitions for the table. - AttributeDefinitions []*AwsDynamoDbTableAttributeDefinition `type:"list"` + // Information about settings for logging access for the stage. + AccessLogSettings *AwsApiGatewayAccessLogSettings `type:"structure"` - // Information about the billing for read/write capacity on the table. - BillingModeSummary *AwsDynamoDbTableBillingModeSummary `type:"structure"` + // Indicates whether the stage is managed by API Gateway. + ApiGatewayManaged *bool `type:"boolean"` - // Indicates when the table was created. + // Indicates whether updates to an API automatically trigger a new deployment. + AutoDeploy *bool `type:"boolean"` + + // Indicates when the stage was created. // // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot // contain spaces. For example, 2020-03-22T13:22:13.933Z. - CreationDateTime *string `type:"string"` - - // List of global secondary indexes for the table. - GlobalSecondaryIndexes []*AwsDynamoDbTableGlobalSecondaryIndex `type:"list"` - - // The version of global tables being used. - GlobalTableVersion *string `type:"string"` - - // The number of items in the table. - ItemCount *int64 `type:"integer"` - - // The primary key structure for the table. - KeySchema []*AwsDynamoDbTableKeySchema `type:"list"` - - // The ARN of the latest stream for the table. - LatestStreamArn *string `type:"string"` - - // The label of the latest stream. The label is not a unique identifier. - LatestStreamLabel *string `type:"string"` - - // The list of local secondary indexes for the table. - LocalSecondaryIndexes []*AwsDynamoDbTableLocalSecondaryIndex `type:"list"` - - // Information about the provisioned throughput for the table. - ProvisionedThroughput *AwsDynamoDbTableProvisionedThroughput `type:"structure"` + CreatedDate *string `type:"string"` - // The list of replicas of this table. - Replicas []*AwsDynamoDbTableReplica `type:"list"` + // Default route settings for the stage. + DefaultRouteSettings *AwsApiGatewayV2RouteSettings `type:"structure"` - // Information about the restore for the table. - RestoreSummary *AwsDynamoDbTableRestoreSummary `type:"structure"` + // The identifier of the deployment that the stage is associated with. + DeploymentId *string `type:"string"` - // Information about the server-side encryption for the table. - SseDescription *AwsDynamoDbTableSseDescription `type:"structure"` + // The description of the stage. + Description *string `type:"string"` - // The current DynamoDB Streams configuration for the table. - StreamSpecification *AwsDynamoDbTableStreamSpecification `type:"structure"` + // The status of the last deployment of a stage. Supported only if the stage + // has automatic deployment enabled. + LastDeploymentStatusMessage *string `type:"string"` - // The identifier of the table. - TableId *string `type:"string"` + // Indicates when the stage was most recently updated. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + LastUpdatedDate *string `type:"string"` - // The name of the table. - TableName *string `type:"string"` + // The route settings for the stage. + RouteSettings *AwsApiGatewayV2RouteSettings `type:"structure"` - // The total size of the table in bytes. - TableSizeBytes *int64 `type:"long"` + // The name of the stage. + StageName *string `type:"string"` - // The current status of the table. - TableStatus *string `type:"string"` + // A map that defines the stage variables for the stage. + // + // Variable names can have alphanumeric and underscore characters. + // + // Variable values can contain the following characters: + // + // * Uppercase and lowercase letters + // + // * Numbers + // + // * Special characters -._~:/?#&=, + StageVariables map[string]*string `type:"map"` } // String returns the string representation -func (s AwsDynamoDbTableDetails) String() string { +func (s AwsApiGatewayV2StageDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsDynamoDbTableDetails) GoString() string { +func (s AwsApiGatewayV2StageDetails) GoString() string { return s.String() } -// SetAttributeDefinitions sets the AttributeDefinitions field's value. -func (s *AwsDynamoDbTableDetails) SetAttributeDefinitions(v []*AwsDynamoDbTableAttributeDefinition) *AwsDynamoDbTableDetails { - s.AttributeDefinitions = v +// SetAccessLogSettings sets the AccessLogSettings field's value. +func (s *AwsApiGatewayV2StageDetails) SetAccessLogSettings(v *AwsApiGatewayAccessLogSettings) *AwsApiGatewayV2StageDetails { + s.AccessLogSettings = v return s } -// SetBillingModeSummary sets the BillingModeSummary field's value. -func (s *AwsDynamoDbTableDetails) SetBillingModeSummary(v *AwsDynamoDbTableBillingModeSummary) *AwsDynamoDbTableDetails { - s.BillingModeSummary = v +// SetApiGatewayManaged sets the ApiGatewayManaged field's value. +func (s *AwsApiGatewayV2StageDetails) SetApiGatewayManaged(v bool) *AwsApiGatewayV2StageDetails { + s.ApiGatewayManaged = &v return s } -// SetCreationDateTime sets the CreationDateTime field's value. -func (s *AwsDynamoDbTableDetails) SetCreationDateTime(v string) *AwsDynamoDbTableDetails { - s.CreationDateTime = &v +// SetAutoDeploy sets the AutoDeploy field's value. +func (s *AwsApiGatewayV2StageDetails) SetAutoDeploy(v bool) *AwsApiGatewayV2StageDetails { + s.AutoDeploy = &v return s } -// SetGlobalSecondaryIndexes sets the GlobalSecondaryIndexes field's value. -func (s *AwsDynamoDbTableDetails) SetGlobalSecondaryIndexes(v []*AwsDynamoDbTableGlobalSecondaryIndex) *AwsDynamoDbTableDetails { - s.GlobalSecondaryIndexes = v +// SetCreatedDate sets the CreatedDate field's value. +func (s *AwsApiGatewayV2StageDetails) SetCreatedDate(v string) *AwsApiGatewayV2StageDetails { + s.CreatedDate = &v return s } -// SetGlobalTableVersion sets the GlobalTableVersion field's value. -func (s *AwsDynamoDbTableDetails) SetGlobalTableVersion(v string) *AwsDynamoDbTableDetails { - s.GlobalTableVersion = &v +// SetDefaultRouteSettings sets the DefaultRouteSettings field's value. +func (s *AwsApiGatewayV2StageDetails) SetDefaultRouteSettings(v *AwsApiGatewayV2RouteSettings) *AwsApiGatewayV2StageDetails { + s.DefaultRouteSettings = v return s } -// SetItemCount sets the ItemCount field's value. -func (s *AwsDynamoDbTableDetails) SetItemCount(v int64) *AwsDynamoDbTableDetails { - s.ItemCount = &v +// SetDeploymentId sets the DeploymentId field's value. +func (s *AwsApiGatewayV2StageDetails) SetDeploymentId(v string) *AwsApiGatewayV2StageDetails { + s.DeploymentId = &v return s } -// SetKeySchema sets the KeySchema field's value. -func (s *AwsDynamoDbTableDetails) SetKeySchema(v []*AwsDynamoDbTableKeySchema) *AwsDynamoDbTableDetails { - s.KeySchema = v +// SetDescription sets the Description field's value. +func (s *AwsApiGatewayV2StageDetails) SetDescription(v string) *AwsApiGatewayV2StageDetails { + s.Description = &v return s } -// SetLatestStreamArn sets the LatestStreamArn field's value. -func (s *AwsDynamoDbTableDetails) SetLatestStreamArn(v string) *AwsDynamoDbTableDetails { - s.LatestStreamArn = &v +// SetLastDeploymentStatusMessage sets the LastDeploymentStatusMessage field's value. +func (s *AwsApiGatewayV2StageDetails) SetLastDeploymentStatusMessage(v string) *AwsApiGatewayV2StageDetails { + s.LastDeploymentStatusMessage = &v return s } -// SetLatestStreamLabel sets the LatestStreamLabel field's value. -func (s *AwsDynamoDbTableDetails) SetLatestStreamLabel(v string) *AwsDynamoDbTableDetails { - s.LatestStreamLabel = &v +// SetLastUpdatedDate sets the LastUpdatedDate field's value. +func (s *AwsApiGatewayV2StageDetails) SetLastUpdatedDate(v string) *AwsApiGatewayV2StageDetails { + s.LastUpdatedDate = &v return s } -// SetLocalSecondaryIndexes sets the LocalSecondaryIndexes field's value. -func (s *AwsDynamoDbTableDetails) SetLocalSecondaryIndexes(v []*AwsDynamoDbTableLocalSecondaryIndex) *AwsDynamoDbTableDetails { - s.LocalSecondaryIndexes = v +// SetRouteSettings sets the RouteSettings field's value. +func (s *AwsApiGatewayV2StageDetails) SetRouteSettings(v *AwsApiGatewayV2RouteSettings) *AwsApiGatewayV2StageDetails { + s.RouteSettings = v return s } -// SetProvisionedThroughput sets the ProvisionedThroughput field's value. -func (s *AwsDynamoDbTableDetails) SetProvisionedThroughput(v *AwsDynamoDbTableProvisionedThroughput) *AwsDynamoDbTableDetails { - s.ProvisionedThroughput = v +// SetStageName sets the StageName field's value. +func (s *AwsApiGatewayV2StageDetails) SetStageName(v string) *AwsApiGatewayV2StageDetails { + s.StageName = &v return s } -// SetReplicas sets the Replicas field's value. -func (s *AwsDynamoDbTableDetails) SetReplicas(v []*AwsDynamoDbTableReplica) *AwsDynamoDbTableDetails { - s.Replicas = v +// SetStageVariables sets the StageVariables field's value. +func (s *AwsApiGatewayV2StageDetails) SetStageVariables(v map[string]*string) *AwsApiGatewayV2StageDetails { + s.StageVariables = v return s } -// SetRestoreSummary sets the RestoreSummary field's value. -func (s *AwsDynamoDbTableDetails) SetRestoreSummary(v *AwsDynamoDbTableRestoreSummary) *AwsDynamoDbTableDetails { - s.RestoreSummary = v - return s +// Provides details about an auto scaling group. +type AwsAutoScalingAutoScalingGroupDetails struct { + _ struct{} `type:"structure"` + + // Indicates when the auto scaling group was created. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + CreatedTime *string `type:"string"` + + // The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before + // it checks the health status of an EC2 instance that has come into service. + HealthCheckGracePeriod *int64 `type:"integer"` + + // The service to use for the health checks. + HealthCheckType *string `type:"string"` + + // The name of the launch configuration. + LaunchConfigurationName *string `type:"string"` + + // The list of load balancers associated with the group. + LoadBalancerNames []*string `type:"list"` } -// SetSseDescription sets the SseDescription field's value. -func (s *AwsDynamoDbTableDetails) SetSseDescription(v *AwsDynamoDbTableSseDescription) *AwsDynamoDbTableDetails { - s.SseDescription = v - return s +// String returns the string representation +func (s AwsAutoScalingAutoScalingGroupDetails) String() string { + return awsutil.Prettify(s) } -// SetStreamSpecification sets the StreamSpecification field's value. -func (s *AwsDynamoDbTableDetails) SetStreamSpecification(v *AwsDynamoDbTableStreamSpecification) *AwsDynamoDbTableDetails { - s.StreamSpecification = v +// GoString returns the string representation +func (s AwsAutoScalingAutoScalingGroupDetails) GoString() string { + return s.String() +} + +// SetCreatedTime sets the CreatedTime field's value. +func (s *AwsAutoScalingAutoScalingGroupDetails) SetCreatedTime(v string) *AwsAutoScalingAutoScalingGroupDetails { + s.CreatedTime = &v return s } -// SetTableId sets the TableId field's value. -func (s *AwsDynamoDbTableDetails) SetTableId(v string) *AwsDynamoDbTableDetails { - s.TableId = &v +// SetHealthCheckGracePeriod sets the HealthCheckGracePeriod field's value. +func (s *AwsAutoScalingAutoScalingGroupDetails) SetHealthCheckGracePeriod(v int64) *AwsAutoScalingAutoScalingGroupDetails { + s.HealthCheckGracePeriod = &v return s } -// SetTableName sets the TableName field's value. -func (s *AwsDynamoDbTableDetails) SetTableName(v string) *AwsDynamoDbTableDetails { - s.TableName = &v +// SetHealthCheckType sets the HealthCheckType field's value. +func (s *AwsAutoScalingAutoScalingGroupDetails) SetHealthCheckType(v string) *AwsAutoScalingAutoScalingGroupDetails { + s.HealthCheckType = &v return s } -// SetTableSizeBytes sets the TableSizeBytes field's value. -func (s *AwsDynamoDbTableDetails) SetTableSizeBytes(v int64) *AwsDynamoDbTableDetails { - s.TableSizeBytes = &v +// SetLaunchConfigurationName sets the LaunchConfigurationName field's value. +func (s *AwsAutoScalingAutoScalingGroupDetails) SetLaunchConfigurationName(v string) *AwsAutoScalingAutoScalingGroupDetails { + s.LaunchConfigurationName = &v return s } -// SetTableStatus sets the TableStatus field's value. -func (s *AwsDynamoDbTableDetails) SetTableStatus(v string) *AwsDynamoDbTableDetails { - s.TableStatus = &v +// SetLoadBalancerNames sets the LoadBalancerNames field's value. +func (s *AwsAutoScalingAutoScalingGroupDetails) SetLoadBalancerNames(v []*string) *AwsAutoScalingAutoScalingGroupDetails { + s.LoadBalancerNames = v return s } -// Information abut a global secondary index for the table. -type AwsDynamoDbTableGlobalSecondaryIndex struct { +// Provides details about an AWS Certificate Manager certificate. +type AwsCertificateManagerCertificateDetails struct { _ struct{} `type:"structure"` - // Whether the index is currently backfilling. - Backfilling *bool `type:"boolean"` + // The ARN of the private certificate authority (CA) that will be used to issue + // the certificate. + CertificateAuthorityArn *string `type:"string"` - // The ARN of the index. - IndexArn *string `type:"string"` + // Indicates when the certificate was requested. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + CreatedAt *string `type:"string"` - // The name of the index. - IndexName *string `type:"string"` + // The fully qualified domain name (FQDN), such as www.example.com, that is + // secured by the certificate. + DomainName *string `type:"string"` - // The total size in bytes of the index. - IndexSizeBytes *int64 `type:"long"` + // Contains information about the initial validation of each domain name that + // occurs as a result of the RequestCertificate request. + // + // Only provided if the certificate type is AMAZON_ISSUED. + DomainValidationOptions []*AwsCertificateManagerCertificateDomainValidationOption `type:"list"` - // The current status of the index. - IndexStatus *string `type:"string"` + // Contains a list of Extended Key Usage X.509 v3 extension objects. Each object + // specifies a purpose for which the certificate public key can be used and + // consists of a name and an object identifier (OID). + ExtendedKeyUsages []*AwsCertificateManagerCertificateExtendedKeyUsage `type:"list"` - // The number of items in the index. - ItemCount *int64 `type:"integer"` + // For a failed certificate request, the reason for the failure. + // + // Valid values: NO_AVAILABLE_CONTACTS | ADDITIONAL_VERIFICATION_REQUIRED | + // DOMAIN_NOT_ALLOWED | INVALID_PUBLIC_DOMAIN | DOMAIN_VALIDATION_DENIED | CAA_ERROR + // | PCA_LIMIT_EXCEEDED | PCA_INVALID_ARN | PCA_INVALID_STATE | PCA_REQUEST_FAILED + // | PCA_NAME_CONSTRAINTS_VALIDATION | PCA_RESOURCE_NOT_FOUND | PCA_INVALID_ARGS + // | PCA_INVALID_DURATION | PCA_ACCESS_DENIED | SLR_NOT_FOUND | OTHER + FailureReason *string `type:"string"` - // The key schema for the index. - KeySchema []*AwsDynamoDbTableKeySchema `type:"list"` + // Indicates when the certificate was imported. Provided if the certificate + // type is IMPORTED. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + ImportedAt *string `type:"string"` - // Attributes that are copied from the table into an index. - Projection *AwsDynamoDbTableProjection `type:"structure"` + // The list of ARNs for the AWS resources that use the certificate. + InUseBy []*string `type:"list"` - // Information about the provisioned throughput settings for the indexes. - ProvisionedThroughput *AwsDynamoDbTableProvisionedThroughput `type:"structure"` -} + // Indicates when the certificate was issued. Provided if the certificate type + // is AMAZON_ISSUED. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + IssuedAt *string `type:"string"` -// String returns the string representation -func (s AwsDynamoDbTableGlobalSecondaryIndex) String() string { + // The name of the certificate authority that issued and signed the certificate. + Issuer *string `type:"string"` + + // The algorithm that was used to generate the public-private key pair. + // + // Valid values: RSA_2048 | RSA_1024 |RSA_4096 | EC_prime256v1 | EC_secp384r1 + // | EC_secp521r1 + KeyAlgorithm *string `type:"string"` + + // A list of key usage X.509 v3 extension objects. + KeyUsages []*AwsCertificateManagerCertificateKeyUsage `type:"list"` + + // The time after which the certificate becomes invalid. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + NotAfter *string `type:"string"` + + // The time before which the certificate is not valid. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + NotBefore *string `type:"string"` + + // Provides a value that specifies whether to add the certificate to a transparency + // log. + Options *AwsCertificateManagerCertificateOptions `type:"structure"` + + // Whether the certificate is eligible for renewal. + // + // Valid values: ELIGIBLE | INELIGIBLE + RenewalEligibility *string `type:"string"` + + // Information about the status of the AWS Certificate Manager managed renewal + // for the certificate. Provided only when the certificate type is AMAZON_ISSUED. + RenewalSummary *AwsCertificateManagerCertificateRenewalSummary `type:"structure"` + + // The serial number of the certificate. + Serial *string `type:"string"` + + // The algorithm that was used to sign the certificate. + SignatureAlgorithm *string `type:"string"` + + // The status of the certificate. + // + // Valid values: PENDING_VALIDATION | ISSUED | INACTIVE | EXPIRED | VALIDATION_TIMED_OUT + // | REVOKED | FAILED + Status *string `type:"string"` + + // The name of the entity that is associated with the public key contained in + // the certificate. + Subject *string `type:"string"` + + // One or more domain names (subject alternative names) included in the certificate. + // This list contains the domain names that are bound to the public key that + // is contained in the certificate. + // + // The subject alternative names include the canonical domain name (CN) of the + // certificate and additional domain names that can be used to connect to the + // website. + SubjectAlternativeNames []*string `type:"list"` + + // The source of the certificate. For certificates that AWS Certificate Manager + // provides, Type is AMAZON_ISSUED. For certificates that are imported with + // ImportCertificate, Type is IMPORTED. + // + // Valid values: IMPORTED | AMAZON_ISSUED | PRIVATE + Type *string `type:"string"` +} + +// String returns the string representation +func (s AwsCertificateManagerCertificateDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsDynamoDbTableGlobalSecondaryIndex) GoString() string { +func (s AwsCertificateManagerCertificateDetails) GoString() string { return s.String() } -// SetBackfilling sets the Backfilling field's value. -func (s *AwsDynamoDbTableGlobalSecondaryIndex) SetBackfilling(v bool) *AwsDynamoDbTableGlobalSecondaryIndex { - s.Backfilling = &v +// SetCertificateAuthorityArn sets the CertificateAuthorityArn field's value. +func (s *AwsCertificateManagerCertificateDetails) SetCertificateAuthorityArn(v string) *AwsCertificateManagerCertificateDetails { + s.CertificateAuthorityArn = &v return s } -// SetIndexArn sets the IndexArn field's value. -func (s *AwsDynamoDbTableGlobalSecondaryIndex) SetIndexArn(v string) *AwsDynamoDbTableGlobalSecondaryIndex { - s.IndexArn = &v +// SetCreatedAt sets the CreatedAt field's value. +func (s *AwsCertificateManagerCertificateDetails) SetCreatedAt(v string) *AwsCertificateManagerCertificateDetails { + s.CreatedAt = &v return s } -// SetIndexName sets the IndexName field's value. -func (s *AwsDynamoDbTableGlobalSecondaryIndex) SetIndexName(v string) *AwsDynamoDbTableGlobalSecondaryIndex { - s.IndexName = &v +// SetDomainName sets the DomainName field's value. +func (s *AwsCertificateManagerCertificateDetails) SetDomainName(v string) *AwsCertificateManagerCertificateDetails { + s.DomainName = &v return s } -// SetIndexSizeBytes sets the IndexSizeBytes field's value. -func (s *AwsDynamoDbTableGlobalSecondaryIndex) SetIndexSizeBytes(v int64) *AwsDynamoDbTableGlobalSecondaryIndex { - s.IndexSizeBytes = &v +// SetDomainValidationOptions sets the DomainValidationOptions field's value. +func (s *AwsCertificateManagerCertificateDetails) SetDomainValidationOptions(v []*AwsCertificateManagerCertificateDomainValidationOption) *AwsCertificateManagerCertificateDetails { + s.DomainValidationOptions = v return s } -// SetIndexStatus sets the IndexStatus field's value. -func (s *AwsDynamoDbTableGlobalSecondaryIndex) SetIndexStatus(v string) *AwsDynamoDbTableGlobalSecondaryIndex { - s.IndexStatus = &v +// SetExtendedKeyUsages sets the ExtendedKeyUsages field's value. +func (s *AwsCertificateManagerCertificateDetails) SetExtendedKeyUsages(v []*AwsCertificateManagerCertificateExtendedKeyUsage) *AwsCertificateManagerCertificateDetails { + s.ExtendedKeyUsages = v return s } -// SetItemCount sets the ItemCount field's value. -func (s *AwsDynamoDbTableGlobalSecondaryIndex) SetItemCount(v int64) *AwsDynamoDbTableGlobalSecondaryIndex { - s.ItemCount = &v +// SetFailureReason sets the FailureReason field's value. +func (s *AwsCertificateManagerCertificateDetails) SetFailureReason(v string) *AwsCertificateManagerCertificateDetails { + s.FailureReason = &v return s } -// SetKeySchema sets the KeySchema field's value. -func (s *AwsDynamoDbTableGlobalSecondaryIndex) SetKeySchema(v []*AwsDynamoDbTableKeySchema) *AwsDynamoDbTableGlobalSecondaryIndex { - s.KeySchema = v +// SetImportedAt sets the ImportedAt field's value. +func (s *AwsCertificateManagerCertificateDetails) SetImportedAt(v string) *AwsCertificateManagerCertificateDetails { + s.ImportedAt = &v return s } -// SetProjection sets the Projection field's value. -func (s *AwsDynamoDbTableGlobalSecondaryIndex) SetProjection(v *AwsDynamoDbTableProjection) *AwsDynamoDbTableGlobalSecondaryIndex { - s.Projection = v +// SetInUseBy sets the InUseBy field's value. +func (s *AwsCertificateManagerCertificateDetails) SetInUseBy(v []*string) *AwsCertificateManagerCertificateDetails { + s.InUseBy = v return s } -// SetProvisionedThroughput sets the ProvisionedThroughput field's value. -func (s *AwsDynamoDbTableGlobalSecondaryIndex) SetProvisionedThroughput(v *AwsDynamoDbTableProvisionedThroughput) *AwsDynamoDbTableGlobalSecondaryIndex { - s.ProvisionedThroughput = v +// SetIssuedAt sets the IssuedAt field's value. +func (s *AwsCertificateManagerCertificateDetails) SetIssuedAt(v string) *AwsCertificateManagerCertificateDetails { + s.IssuedAt = &v return s } -// A component of the key schema for the DynamoDB table, a global secondary -// index, or a local secondary index. -type AwsDynamoDbTableKeySchema struct { - _ struct{} `type:"structure"` - - // The name of the key schema attribute. - AttributeName *string `type:"string"` - - // The type of key used for the key schema attribute. - KeyType *string `type:"string"` +// SetIssuer sets the Issuer field's value. +func (s *AwsCertificateManagerCertificateDetails) SetIssuer(v string) *AwsCertificateManagerCertificateDetails { + s.Issuer = &v + return s } -// String returns the string representation -func (s AwsDynamoDbTableKeySchema) String() string { - return awsutil.Prettify(s) +// SetKeyAlgorithm sets the KeyAlgorithm field's value. +func (s *AwsCertificateManagerCertificateDetails) SetKeyAlgorithm(v string) *AwsCertificateManagerCertificateDetails { + s.KeyAlgorithm = &v + return s } -// GoString returns the string representation -func (s AwsDynamoDbTableKeySchema) GoString() string { - return s.String() +// SetKeyUsages sets the KeyUsages field's value. +func (s *AwsCertificateManagerCertificateDetails) SetKeyUsages(v []*AwsCertificateManagerCertificateKeyUsage) *AwsCertificateManagerCertificateDetails { + s.KeyUsages = v + return s } -// SetAttributeName sets the AttributeName field's value. -func (s *AwsDynamoDbTableKeySchema) SetAttributeName(v string) *AwsDynamoDbTableKeySchema { - s.AttributeName = &v +// SetNotAfter sets the NotAfter field's value. +func (s *AwsCertificateManagerCertificateDetails) SetNotAfter(v string) *AwsCertificateManagerCertificateDetails { + s.NotAfter = &v return s } -// SetKeyType sets the KeyType field's value. -func (s *AwsDynamoDbTableKeySchema) SetKeyType(v string) *AwsDynamoDbTableKeySchema { - s.KeyType = &v +// SetNotBefore sets the NotBefore field's value. +func (s *AwsCertificateManagerCertificateDetails) SetNotBefore(v string) *AwsCertificateManagerCertificateDetails { + s.NotBefore = &v return s } -// Information about a local secondary index for a DynamoDB table. -type AwsDynamoDbTableLocalSecondaryIndex struct { - _ struct{} `type:"structure"` - - // The ARN of the index. - IndexArn *string `type:"string"` - - // The name of the index. - IndexName *string `type:"string"` +// SetOptions sets the Options field's value. +func (s *AwsCertificateManagerCertificateDetails) SetOptions(v *AwsCertificateManagerCertificateOptions) *AwsCertificateManagerCertificateDetails { + s.Options = v + return s +} - // The complete key schema for the index. - KeySchema []*AwsDynamoDbTableKeySchema `type:"list"` +// SetRenewalEligibility sets the RenewalEligibility field's value. +func (s *AwsCertificateManagerCertificateDetails) SetRenewalEligibility(v string) *AwsCertificateManagerCertificateDetails { + s.RenewalEligibility = &v + return s +} - // Attributes that are copied from the table into the index. These are in addition - // to the primary key attributes and index key attributes, which are automatically - // projected. - Projection *AwsDynamoDbTableProjection `type:"structure"` +// SetRenewalSummary sets the RenewalSummary field's value. +func (s *AwsCertificateManagerCertificateDetails) SetRenewalSummary(v *AwsCertificateManagerCertificateRenewalSummary) *AwsCertificateManagerCertificateDetails { + s.RenewalSummary = v + return s } -// String returns the string representation -func (s AwsDynamoDbTableLocalSecondaryIndex) String() string { - return awsutil.Prettify(s) +// SetSerial sets the Serial field's value. +func (s *AwsCertificateManagerCertificateDetails) SetSerial(v string) *AwsCertificateManagerCertificateDetails { + s.Serial = &v + return s } -// GoString returns the string representation -func (s AwsDynamoDbTableLocalSecondaryIndex) GoString() string { - return s.String() +// SetSignatureAlgorithm sets the SignatureAlgorithm field's value. +func (s *AwsCertificateManagerCertificateDetails) SetSignatureAlgorithm(v string) *AwsCertificateManagerCertificateDetails { + s.SignatureAlgorithm = &v + return s } -// SetIndexArn sets the IndexArn field's value. -func (s *AwsDynamoDbTableLocalSecondaryIndex) SetIndexArn(v string) *AwsDynamoDbTableLocalSecondaryIndex { - s.IndexArn = &v +// SetStatus sets the Status field's value. +func (s *AwsCertificateManagerCertificateDetails) SetStatus(v string) *AwsCertificateManagerCertificateDetails { + s.Status = &v return s } -// SetIndexName sets the IndexName field's value. -func (s *AwsDynamoDbTableLocalSecondaryIndex) SetIndexName(v string) *AwsDynamoDbTableLocalSecondaryIndex { - s.IndexName = &v +// SetSubject sets the Subject field's value. +func (s *AwsCertificateManagerCertificateDetails) SetSubject(v string) *AwsCertificateManagerCertificateDetails { + s.Subject = &v return s } -// SetKeySchema sets the KeySchema field's value. -func (s *AwsDynamoDbTableLocalSecondaryIndex) SetKeySchema(v []*AwsDynamoDbTableKeySchema) *AwsDynamoDbTableLocalSecondaryIndex { - s.KeySchema = v +// SetSubjectAlternativeNames sets the SubjectAlternativeNames field's value. +func (s *AwsCertificateManagerCertificateDetails) SetSubjectAlternativeNames(v []*string) *AwsCertificateManagerCertificateDetails { + s.SubjectAlternativeNames = v return s } -// SetProjection sets the Projection field's value. -func (s *AwsDynamoDbTableLocalSecondaryIndex) SetProjection(v *AwsDynamoDbTableProjection) *AwsDynamoDbTableLocalSecondaryIndex { - s.Projection = v +// SetType sets the Type field's value. +func (s *AwsCertificateManagerCertificateDetails) SetType(v string) *AwsCertificateManagerCertificateDetails { + s.Type = &v return s } -// For global and local secondary indexes, identifies the attributes that are -// copied from the table into the index. -type AwsDynamoDbTableProjection struct { +// Contains information about one of the following: +// +// * The initial validation of each domain name that occurs as a result of +// the RequestCertificate request +// +// * The validation of each domain name in the certificate, as it pertains +// to AWS Certificate Manager managed renewal +type AwsCertificateManagerCertificateDomainValidationOption struct { _ struct{} `type:"structure"` - // The nonkey attributes that are projected into the index. For each attribute, - // provide the attribute name. - NonKeyAttributes []*string `type:"list"` + // A fully qualified domain name (FQDN) in the certificate. + DomainName *string `type:"string"` - // The types of attributes that are projected into the index. - ProjectionType *string `type:"string"` + // The CNAME record that is added to the DNS database for domain validation. + ResourceRecord *AwsCertificateManagerCertificateResourceRecord `type:"structure"` + + // The domain name that AWS Certificate Manager uses to send domain validation + // emails. + ValidationDomain *string `type:"string"` + + // A list of email addresses that AWS Certificate Manager uses to send domain + // validation emails. + ValidationEmails []*string `type:"list"` + + // The method used to validate the domain name. + ValidationMethod *string `type:"string"` + + // The validation status of the domain name. + ValidationStatus *string `type:"string"` } // String returns the string representation -func (s AwsDynamoDbTableProjection) String() string { +func (s AwsCertificateManagerCertificateDomainValidationOption) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsDynamoDbTableProjection) GoString() string { +func (s AwsCertificateManagerCertificateDomainValidationOption) GoString() string { return s.String() } -// SetNonKeyAttributes sets the NonKeyAttributes field's value. -func (s *AwsDynamoDbTableProjection) SetNonKeyAttributes(v []*string) *AwsDynamoDbTableProjection { - s.NonKeyAttributes = v +// SetDomainName sets the DomainName field's value. +func (s *AwsCertificateManagerCertificateDomainValidationOption) SetDomainName(v string) *AwsCertificateManagerCertificateDomainValidationOption { + s.DomainName = &v return s } -// SetProjectionType sets the ProjectionType field's value. -func (s *AwsDynamoDbTableProjection) SetProjectionType(v string) *AwsDynamoDbTableProjection { - s.ProjectionType = &v +// SetResourceRecord sets the ResourceRecord field's value. +func (s *AwsCertificateManagerCertificateDomainValidationOption) SetResourceRecord(v *AwsCertificateManagerCertificateResourceRecord) *AwsCertificateManagerCertificateDomainValidationOption { + s.ResourceRecord = v return s } -// Information about the provisioned throughput for the table or for a global -// secondary index. -type AwsDynamoDbTableProvisionedThroughput struct { - _ struct{} `type:"structure"` +// SetValidationDomain sets the ValidationDomain field's value. +func (s *AwsCertificateManagerCertificateDomainValidationOption) SetValidationDomain(v string) *AwsCertificateManagerCertificateDomainValidationOption { + s.ValidationDomain = &v + return s +} - // Indicates when the provisioned throughput was last decreased. - // - // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time - // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot - // contain spaces. For example, 2020-03-22T13:22:13.933Z. - LastDecreaseDateTime *string `type:"string"` +// SetValidationEmails sets the ValidationEmails field's value. +func (s *AwsCertificateManagerCertificateDomainValidationOption) SetValidationEmails(v []*string) *AwsCertificateManagerCertificateDomainValidationOption { + s.ValidationEmails = v + return s +} - // Indicates when the provisioned throughput was last increased. - // - // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time - // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot - // contain spaces. For example, 2020-03-22T13:22:13.933Z. - LastIncreaseDateTime *string `type:"string"` +// SetValidationMethod sets the ValidationMethod field's value. +func (s *AwsCertificateManagerCertificateDomainValidationOption) SetValidationMethod(v string) *AwsCertificateManagerCertificateDomainValidationOption { + s.ValidationMethod = &v + return s +} - // The number of times during the current UTC calendar day that the provisioned - // throughput was decreased. - NumberOfDecreasesToday *int64 `type:"integer"` +// SetValidationStatus sets the ValidationStatus field's value. +func (s *AwsCertificateManagerCertificateDomainValidationOption) SetValidationStatus(v string) *AwsCertificateManagerCertificateDomainValidationOption { + s.ValidationStatus = &v + return s +} - // The maximum number of strongly consistent reads consumed per second before - // DynamoDB returns a ThrottlingException. - ReadCapacityUnits *int64 `type:"integer"` +// Contains information about an extended key usage X.509 v3 extension object. +type AwsCertificateManagerCertificateExtendedKeyUsage struct { + _ struct{} `type:"structure"` - // The maximum number of writes consumed per second before DynamoDB returns - // a ThrottlingException. - WriteCapacityUnits *int64 `type:"integer"` + // The name of an extension value. Indicates the purpose for which the certificate + // public key can be used. + Name *string `type:"string"` + + // An object identifier (OID) for the extension value. + // + // The format is numbers separated by periods. + OId *string `type:"string"` } // String returns the string representation -func (s AwsDynamoDbTableProvisionedThroughput) String() string { +func (s AwsCertificateManagerCertificateExtendedKeyUsage) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsDynamoDbTableProvisionedThroughput) GoString() string { +func (s AwsCertificateManagerCertificateExtendedKeyUsage) GoString() string { return s.String() } -// SetLastDecreaseDateTime sets the LastDecreaseDateTime field's value. -func (s *AwsDynamoDbTableProvisionedThroughput) SetLastDecreaseDateTime(v string) *AwsDynamoDbTableProvisionedThroughput { - s.LastDecreaseDateTime = &v +// SetName sets the Name field's value. +func (s *AwsCertificateManagerCertificateExtendedKeyUsage) SetName(v string) *AwsCertificateManagerCertificateExtendedKeyUsage { + s.Name = &v return s } -// SetLastIncreaseDateTime sets the LastIncreaseDateTime field's value. -func (s *AwsDynamoDbTableProvisionedThroughput) SetLastIncreaseDateTime(v string) *AwsDynamoDbTableProvisionedThroughput { - s.LastIncreaseDateTime = &v +// SetOId sets the OId field's value. +func (s *AwsCertificateManagerCertificateExtendedKeyUsage) SetOId(v string) *AwsCertificateManagerCertificateExtendedKeyUsage { + s.OId = &v return s } -// SetNumberOfDecreasesToday sets the NumberOfDecreasesToday field's value. -func (s *AwsDynamoDbTableProvisionedThroughput) SetNumberOfDecreasesToday(v int64) *AwsDynamoDbTableProvisionedThroughput { - s.NumberOfDecreasesToday = &v - return s +// Contains information about a key usage X.509 v3 extension object. +type AwsCertificateManagerCertificateKeyUsage struct { + _ struct{} `type:"structure"` + + // The key usage extension name. + Name *string `type:"string"` } -// SetReadCapacityUnits sets the ReadCapacityUnits field's value. -func (s *AwsDynamoDbTableProvisionedThroughput) SetReadCapacityUnits(v int64) *AwsDynamoDbTableProvisionedThroughput { - s.ReadCapacityUnits = &v - return s +// String returns the string representation +func (s AwsCertificateManagerCertificateKeyUsage) String() string { + return awsutil.Prettify(s) } -// SetWriteCapacityUnits sets the WriteCapacityUnits field's value. -func (s *AwsDynamoDbTableProvisionedThroughput) SetWriteCapacityUnits(v int64) *AwsDynamoDbTableProvisionedThroughput { - s.WriteCapacityUnits = &v +// GoString returns the string representation +func (s AwsCertificateManagerCertificateKeyUsage) GoString() string { + return s.String() +} + +// SetName sets the Name field's value. +func (s *AwsCertificateManagerCertificateKeyUsage) SetName(v string) *AwsCertificateManagerCertificateKeyUsage { + s.Name = &v return s } -// Replica-specific configuration for the provisioned throughput. -type AwsDynamoDbTableProvisionedThroughputOverride struct { +// Contains other options for the certificate. +type AwsCertificateManagerCertificateOptions struct { _ struct{} `type:"structure"` - // The read capacity units for the replica. - ReadCapacityUnits *int64 `type:"integer"` + // Whether to add the certificate to a transparency log. + // + // Valid values: DISABLED | ENABLED + CertificateTransparencyLoggingPreference *string `type:"string"` } // String returns the string representation -func (s AwsDynamoDbTableProvisionedThroughputOverride) String() string { +func (s AwsCertificateManagerCertificateOptions) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsDynamoDbTableProvisionedThroughputOverride) GoString() string { +func (s AwsCertificateManagerCertificateOptions) GoString() string { return s.String() } -// SetReadCapacityUnits sets the ReadCapacityUnits field's value. -func (s *AwsDynamoDbTableProvisionedThroughputOverride) SetReadCapacityUnits(v int64) *AwsDynamoDbTableProvisionedThroughputOverride { - s.ReadCapacityUnits = &v +// SetCertificateTransparencyLoggingPreference sets the CertificateTransparencyLoggingPreference field's value. +func (s *AwsCertificateManagerCertificateOptions) SetCertificateTransparencyLoggingPreference(v string) *AwsCertificateManagerCertificateOptions { + s.CertificateTransparencyLoggingPreference = &v return s } -// Information about a replica of a DynamoDB table. -type AwsDynamoDbTableReplica struct { +// Contains information about the AWS Certificate Manager managed renewal for +// an AMAZON_ISSUED certificate. +type AwsCertificateManagerCertificateRenewalSummary struct { _ struct{} `type:"structure"` - // List of global secondary indexes for the replica. - GlobalSecondaryIndexes []*AwsDynamoDbTableReplicaGlobalSecondaryIndex `type:"list"` + // Information about the validation of each domain name in the certificate, + // as it pertains to AWS Certificate Manager managed renewal. Provided only + // when the certificate type is AMAZON_ISSUED. + DomainValidationOptions []*AwsCertificateManagerCertificateDomainValidationOption `type:"list"` - // The identifier of the AWS KMS customer master key (CMK) that will be used - // for AWS KMS encryption for the replica. - KmsMasterKeyId *string `type:"string"` + // The status of the AWS Certificate Manager managed renewal of the certificate. + // + // Valid values: PENDING_AUTO_RENEWAL | PENDING_VALIDATION | SUCCESS | FAILED + RenewalStatus *string `type:"string"` - // Replica-specific configuration for the provisioned throughput. - ProvisionedThroughputOverride *AwsDynamoDbTableProvisionedThroughputOverride `type:"structure"` + // The reason that a renewal request was unsuccessful. + // + // Valid values: NO_AVAILABLE_CONTACTS | ADDITIONAL_VERIFICATION_REQUIRED | + // DOMAIN_NOT_ALLOWED | INVALID_PUBLIC_DOMAIN | DOMAIN_VALIDATION_DENIED | CAA_ERROR + // | PCA_LIMIT_EXCEEDED | PCA_INVALID_ARN | PCA_INVALID_STATE | PCA_REQUEST_FAILED + // | PCA_NAME_CONSTRAINTS_VALIDATION | PCA_RESOURCE_NOT_FOUND | PCA_INVALID_ARGS + // | PCA_INVALID_DURATION | PCA_ACCESS_DENIED | SLR_NOT_FOUND | OTHER + RenewalStatusReason *string `type:"string"` - // The name of the Region where the replica is located. - RegionName *string `type:"string"` - - // The current status of the replica. - ReplicaStatus *string `type:"string"` - - // Detailed information about the replica status. - ReplicaStatusDescription *string `type:"string"` -} + // Indicates when the renewal summary was last updated. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + UpdatedAt *string `type:"string"` +} // String returns the string representation -func (s AwsDynamoDbTableReplica) String() string { +func (s AwsCertificateManagerCertificateRenewalSummary) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsDynamoDbTableReplica) GoString() string { +func (s AwsCertificateManagerCertificateRenewalSummary) GoString() string { return s.String() } -// SetGlobalSecondaryIndexes sets the GlobalSecondaryIndexes field's value. -func (s *AwsDynamoDbTableReplica) SetGlobalSecondaryIndexes(v []*AwsDynamoDbTableReplicaGlobalSecondaryIndex) *AwsDynamoDbTableReplica { - s.GlobalSecondaryIndexes = v - return s -} - -// SetKmsMasterKeyId sets the KmsMasterKeyId field's value. -func (s *AwsDynamoDbTableReplica) SetKmsMasterKeyId(v string) *AwsDynamoDbTableReplica { - s.KmsMasterKeyId = &v - return s -} - -// SetProvisionedThroughputOverride sets the ProvisionedThroughputOverride field's value. -func (s *AwsDynamoDbTableReplica) SetProvisionedThroughputOverride(v *AwsDynamoDbTableProvisionedThroughputOverride) *AwsDynamoDbTableReplica { - s.ProvisionedThroughputOverride = v +// SetDomainValidationOptions sets the DomainValidationOptions field's value. +func (s *AwsCertificateManagerCertificateRenewalSummary) SetDomainValidationOptions(v []*AwsCertificateManagerCertificateDomainValidationOption) *AwsCertificateManagerCertificateRenewalSummary { + s.DomainValidationOptions = v return s } -// SetRegionName sets the RegionName field's value. -func (s *AwsDynamoDbTableReplica) SetRegionName(v string) *AwsDynamoDbTableReplica { - s.RegionName = &v +// SetRenewalStatus sets the RenewalStatus field's value. +func (s *AwsCertificateManagerCertificateRenewalSummary) SetRenewalStatus(v string) *AwsCertificateManagerCertificateRenewalSummary { + s.RenewalStatus = &v return s } -// SetReplicaStatus sets the ReplicaStatus field's value. -func (s *AwsDynamoDbTableReplica) SetReplicaStatus(v string) *AwsDynamoDbTableReplica { - s.ReplicaStatus = &v +// SetRenewalStatusReason sets the RenewalStatusReason field's value. +func (s *AwsCertificateManagerCertificateRenewalSummary) SetRenewalStatusReason(v string) *AwsCertificateManagerCertificateRenewalSummary { + s.RenewalStatusReason = &v return s } -// SetReplicaStatusDescription sets the ReplicaStatusDescription field's value. -func (s *AwsDynamoDbTableReplica) SetReplicaStatusDescription(v string) *AwsDynamoDbTableReplica { - s.ReplicaStatusDescription = &v +// SetUpdatedAt sets the UpdatedAt field's value. +func (s *AwsCertificateManagerCertificateRenewalSummary) SetUpdatedAt(v string) *AwsCertificateManagerCertificateRenewalSummary { + s.UpdatedAt = &v return s } -// Information about a global secondary index for a DynamoDB table replica. -type AwsDynamoDbTableReplicaGlobalSecondaryIndex struct { +// Provides details about the CNAME record that is added to the DNS database +// for domain validation. +type AwsCertificateManagerCertificateResourceRecord struct { _ struct{} `type:"structure"` - // The name of the index. - IndexName *string `type:"string"` + // The name of the resource. + Name *string `type:"string"` - // Replica-specific configuration for the provisioned throughput for the index. - ProvisionedThroughputOverride *AwsDynamoDbTableProvisionedThroughputOverride `type:"structure"` + // The type of resource. + Type *string `type:"string"` + + // The value of the resource. + Value *string `type:"string"` } // String returns the string representation -func (s AwsDynamoDbTableReplicaGlobalSecondaryIndex) String() string { +func (s AwsCertificateManagerCertificateResourceRecord) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsDynamoDbTableReplicaGlobalSecondaryIndex) GoString() string { +func (s AwsCertificateManagerCertificateResourceRecord) GoString() string { return s.String() } -// SetIndexName sets the IndexName field's value. -func (s *AwsDynamoDbTableReplicaGlobalSecondaryIndex) SetIndexName(v string) *AwsDynamoDbTableReplicaGlobalSecondaryIndex { - s.IndexName = &v +// SetName sets the Name field's value. +func (s *AwsCertificateManagerCertificateResourceRecord) SetName(v string) *AwsCertificateManagerCertificateResourceRecord { + s.Name = &v return s } -// SetProvisionedThroughputOverride sets the ProvisionedThroughputOverride field's value. -func (s *AwsDynamoDbTableReplicaGlobalSecondaryIndex) SetProvisionedThroughputOverride(v *AwsDynamoDbTableProvisionedThroughputOverride) *AwsDynamoDbTableReplicaGlobalSecondaryIndex { - s.ProvisionedThroughputOverride = v +// SetType sets the Type field's value. +func (s *AwsCertificateManagerCertificateResourceRecord) SetType(v string) *AwsCertificateManagerCertificateResourceRecord { + s.Type = &v return s } -// Information about the restore for the table. -type AwsDynamoDbTableRestoreSummary struct { +// SetValue sets the Value field's value. +func (s *AwsCertificateManagerCertificateResourceRecord) SetValue(v string) *AwsCertificateManagerCertificateResourceRecord { + s.Value = &v + return s +} + +// Information about a cache behavior for the distribution. +type AwsCloudFrontDistributionCacheBehavior struct { _ struct{} `type:"structure"` - // Indicates the point in time that the table was restored to. + // The protocol that viewers can use to access the files in an origin. You can + // specify the following options: // - // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time - // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot - // contain spaces. For example, 2020-03-22T13:22:13.933Z. - RestoreDateTime *string `type:"string"` - - // Whether a restore is currently in progress. - RestoreInProgress *bool `type:"boolean"` - - // The ARN of the source backup from which the table was restored. - SourceBackupArn *string `type:"string"` - - // The ARN of the source table for the backup. - SourceTableArn *string `type:"string"` + // * allow-all - Viewers can use HTTP or HTTPS. + // + // * redirect-to-https - CloudFront responds to HTTP requests with an HTTP + // status code of 301 (Moved Permanently) and the HTTPS URL. The viewer then + // uses the new URL to resubmit. + // + // * https-only - CloudFront responds to HTTP request with an HTTP status + // code of 403 (Forbidden). + ViewerProtocolPolicy *string `type:"string"` } // String returns the string representation -func (s AwsDynamoDbTableRestoreSummary) String() string { +func (s AwsCloudFrontDistributionCacheBehavior) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsDynamoDbTableRestoreSummary) GoString() string { +func (s AwsCloudFrontDistributionCacheBehavior) GoString() string { return s.String() } -// SetRestoreDateTime sets the RestoreDateTime field's value. -func (s *AwsDynamoDbTableRestoreSummary) SetRestoreDateTime(v string) *AwsDynamoDbTableRestoreSummary { - s.RestoreDateTime = &v - return s -} - -// SetRestoreInProgress sets the RestoreInProgress field's value. -func (s *AwsDynamoDbTableRestoreSummary) SetRestoreInProgress(v bool) *AwsDynamoDbTableRestoreSummary { - s.RestoreInProgress = &v - return s -} - -// SetSourceBackupArn sets the SourceBackupArn field's value. -func (s *AwsDynamoDbTableRestoreSummary) SetSourceBackupArn(v string) *AwsDynamoDbTableRestoreSummary { - s.SourceBackupArn = &v - return s -} - -// SetSourceTableArn sets the SourceTableArn field's value. -func (s *AwsDynamoDbTableRestoreSummary) SetSourceTableArn(v string) *AwsDynamoDbTableRestoreSummary { - s.SourceTableArn = &v +// SetViewerProtocolPolicy sets the ViewerProtocolPolicy field's value. +func (s *AwsCloudFrontDistributionCacheBehavior) SetViewerProtocolPolicy(v string) *AwsCloudFrontDistributionCacheBehavior { + s.ViewerProtocolPolicy = &v return s } -// Information about the server-side encryption for the table. -type AwsDynamoDbTableSseDescription struct { +// Provides information about caching for the distribution. +type AwsCloudFrontDistributionCacheBehaviors struct { _ struct{} `type:"structure"` - // If the key is inaccessible, the date and time when DynamoDB detected that - // the key was inaccessible. - // - // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time - // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot - // contain spaces. For example, 2020-03-22T13:22:13.933Z. - InaccessibleEncryptionDateTime *string `type:"string"` - - // The ARN of the AWS KMS customer master key (CMK) that is used for the AWS - // KMS encryption. - KmsMasterKeyArn *string `type:"string"` - - // The type of server-side encryption. - SseType *string `type:"string"` - - // The status of the server-side encryption. - Status *string `type:"string"` + // The cache behaviors for the distribution. + Items []*AwsCloudFrontDistributionCacheBehavior `type:"list"` } // String returns the string representation -func (s AwsDynamoDbTableSseDescription) String() string { +func (s AwsCloudFrontDistributionCacheBehaviors) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsDynamoDbTableSseDescription) GoString() string { +func (s AwsCloudFrontDistributionCacheBehaviors) GoString() string { return s.String() } -// SetInaccessibleEncryptionDateTime sets the InaccessibleEncryptionDateTime field's value. -func (s *AwsDynamoDbTableSseDescription) SetInaccessibleEncryptionDateTime(v string) *AwsDynamoDbTableSseDescription { - s.InaccessibleEncryptionDateTime = &v - return s -} - -// SetKmsMasterKeyArn sets the KmsMasterKeyArn field's value. -func (s *AwsDynamoDbTableSseDescription) SetKmsMasterKeyArn(v string) *AwsDynamoDbTableSseDescription { - s.KmsMasterKeyArn = &v - return s -} - -// SetSseType sets the SseType field's value. -func (s *AwsDynamoDbTableSseDescription) SetSseType(v string) *AwsDynamoDbTableSseDescription { - s.SseType = &v - return s -} - -// SetStatus sets the Status field's value. -func (s *AwsDynamoDbTableSseDescription) SetStatus(v string) *AwsDynamoDbTableSseDescription { - s.Status = &v +// SetItems sets the Items field's value. +func (s *AwsCloudFrontDistributionCacheBehaviors) SetItems(v []*AwsCloudFrontDistributionCacheBehavior) *AwsCloudFrontDistributionCacheBehaviors { + s.Items = v return s } -// The current DynamoDB Streams configuration for the table. -type AwsDynamoDbTableStreamSpecification struct { +// Contains information about the default cache configuration for the distribution. +type AwsCloudFrontDistributionDefaultCacheBehavior struct { _ struct{} `type:"structure"` - // Indicates whether DynamoDB Streams is enabled on the table. - StreamEnabled *bool `type:"boolean"` - - // Determines the information that is written to the table. - StreamViewType *string `type:"string"` + // The protocol that viewers can use to access the files in an origin. You can + // specify the following options: + // + // * allow-all - Viewers can use HTTP or HTTPS. + // + // * redirect-to-https - CloudFront responds to HTTP requests with an HTTP + // status code of 301 (Moved Permanently) and the HTTPS URL. The viewer then + // uses the new URL to resubmit. + // + // * https-only - CloudFront responds to HTTP request with an HTTP status + // code of 403 (Forbidden). + ViewerProtocolPolicy *string `type:"string"` } // String returns the string representation -func (s AwsDynamoDbTableStreamSpecification) String() string { +func (s AwsCloudFrontDistributionDefaultCacheBehavior) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsDynamoDbTableStreamSpecification) GoString() string { +func (s AwsCloudFrontDistributionDefaultCacheBehavior) GoString() string { return s.String() } -// SetStreamEnabled sets the StreamEnabled field's value. -func (s *AwsDynamoDbTableStreamSpecification) SetStreamEnabled(v bool) *AwsDynamoDbTableStreamSpecification { - s.StreamEnabled = &v - return s -} - -// SetStreamViewType sets the StreamViewType field's value. -func (s *AwsDynamoDbTableStreamSpecification) SetStreamViewType(v string) *AwsDynamoDbTableStreamSpecification { - s.StreamViewType = &v +// SetViewerProtocolPolicy sets the ViewerProtocolPolicy field's value. +func (s *AwsCloudFrontDistributionDefaultCacheBehavior) SetViewerProtocolPolicy(v string) *AwsCloudFrontDistributionDefaultCacheBehavior { + s.ViewerProtocolPolicy = &v return s } -// Information about an Elastic IP address. -type AwsEc2EipDetails struct { +// A distribution configuration. +type AwsCloudFrontDistributionDetails struct { _ struct{} `type:"structure"` - // The identifier that AWS assigns to represent the allocation of the Elastic - // IP address for use with Amazon VPC. - AllocationId *string `type:"string"` + // Provides information about the cache configuration for the distribution. + CacheBehaviors *AwsCloudFrontDistributionCacheBehaviors `type:"structure"` - // The identifier that represents the association of the Elastic IP address - // with an EC2 instance. - AssociationId *string `type:"string"` + // The default cache behavior for the configuration. + DefaultCacheBehavior *AwsCloudFrontDistributionDefaultCacheBehavior `type:"structure"` - // The domain in which to allocate the address. - // - // If the address is for use with EC2 instances in a VPC, then Domain is vpc. - // Otherwise, Domain is standard. - Domain *string `type:"string"` + // The object that CloudFront sends in response to requests from the origin + // (for example, index.html) when a viewer requests the root URL for the distribution + // (http://www.example.com) instead of an object in your distribution (http://www.example.com/product-description.html). + DefaultRootObject *string `type:"string"` - // The identifier of the EC2 instance. - InstanceId *string `type:"string"` + // The domain name corresponding to the distribution. + DomainName *string `type:"string"` - // The name of the location from which the Elastic IP address is advertised. - NetworkBorderGroup *string `type:"string"` + // The entity tag is a hash of the object. + ETag *string `type:"string"` - // The identifier of the network interface. - NetworkInterfaceId *string `type:"string"` + // Indicates when that the distribution was last modified. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + LastModifiedTime *string `type:"string"` - // The AWS account ID of the owner of the network interface. - NetworkInterfaceOwnerId *string `type:"string"` + // A complex type that controls whether access logs are written for the distribution. + Logging *AwsCloudFrontDistributionLogging `type:"structure"` - // The private IP address that is associated with the Elastic IP address. - PrivateIpAddress *string `type:"string"` + // Provides information about the origin groups in the distribution. + OriginGroups *AwsCloudFrontDistributionOriginGroups `type:"structure"` - // A public IP address that is associated with the EC2 instance. - PublicIp *string `type:"string"` + // A complex type that contains information about origins for this distribution. + Origins *AwsCloudFrontDistributionOrigins `type:"structure"` - // The identifier of an IP address pool. This parameter allows Amazon EC2 to - // select an IP address from the address pool. - PublicIpv4Pool *string `type:"string"` + // Indicates the current status of the distribution. + Status *string `type:"string"` + + // A unique identifier that specifies the AWS WAF web ACL, if any, to associate + // with this distribution. + WebAclId *string `type:"string"` } // String returns the string representation -func (s AwsEc2EipDetails) String() string { +func (s AwsCloudFrontDistributionDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsEc2EipDetails) GoString() string { +func (s AwsCloudFrontDistributionDetails) GoString() string { return s.String() } -// SetAllocationId sets the AllocationId field's value. -func (s *AwsEc2EipDetails) SetAllocationId(v string) *AwsEc2EipDetails { - s.AllocationId = &v +// SetCacheBehaviors sets the CacheBehaviors field's value. +func (s *AwsCloudFrontDistributionDetails) SetCacheBehaviors(v *AwsCloudFrontDistributionCacheBehaviors) *AwsCloudFrontDistributionDetails { + s.CacheBehaviors = v return s } -// SetAssociationId sets the AssociationId field's value. -func (s *AwsEc2EipDetails) SetAssociationId(v string) *AwsEc2EipDetails { - s.AssociationId = &v +// SetDefaultCacheBehavior sets the DefaultCacheBehavior field's value. +func (s *AwsCloudFrontDistributionDetails) SetDefaultCacheBehavior(v *AwsCloudFrontDistributionDefaultCacheBehavior) *AwsCloudFrontDistributionDetails { + s.DefaultCacheBehavior = v return s } -// SetDomain sets the Domain field's value. -func (s *AwsEc2EipDetails) SetDomain(v string) *AwsEc2EipDetails { - s.Domain = &v +// SetDefaultRootObject sets the DefaultRootObject field's value. +func (s *AwsCloudFrontDistributionDetails) SetDefaultRootObject(v string) *AwsCloudFrontDistributionDetails { + s.DefaultRootObject = &v return s } -// SetInstanceId sets the InstanceId field's value. -func (s *AwsEc2EipDetails) SetInstanceId(v string) *AwsEc2EipDetails { - s.InstanceId = &v +// SetDomainName sets the DomainName field's value. +func (s *AwsCloudFrontDistributionDetails) SetDomainName(v string) *AwsCloudFrontDistributionDetails { + s.DomainName = &v return s } -// SetNetworkBorderGroup sets the NetworkBorderGroup field's value. -func (s *AwsEc2EipDetails) SetNetworkBorderGroup(v string) *AwsEc2EipDetails { - s.NetworkBorderGroup = &v +// SetETag sets the ETag field's value. +func (s *AwsCloudFrontDistributionDetails) SetETag(v string) *AwsCloudFrontDistributionDetails { + s.ETag = &v return s } -// SetNetworkInterfaceId sets the NetworkInterfaceId field's value. -func (s *AwsEc2EipDetails) SetNetworkInterfaceId(v string) *AwsEc2EipDetails { - s.NetworkInterfaceId = &v +// SetLastModifiedTime sets the LastModifiedTime field's value. +func (s *AwsCloudFrontDistributionDetails) SetLastModifiedTime(v string) *AwsCloudFrontDistributionDetails { + s.LastModifiedTime = &v return s } -// SetNetworkInterfaceOwnerId sets the NetworkInterfaceOwnerId field's value. -func (s *AwsEc2EipDetails) SetNetworkInterfaceOwnerId(v string) *AwsEc2EipDetails { - s.NetworkInterfaceOwnerId = &v +// SetLogging sets the Logging field's value. +func (s *AwsCloudFrontDistributionDetails) SetLogging(v *AwsCloudFrontDistributionLogging) *AwsCloudFrontDistributionDetails { + s.Logging = v return s } -// SetPrivateIpAddress sets the PrivateIpAddress field's value. -func (s *AwsEc2EipDetails) SetPrivateIpAddress(v string) *AwsEc2EipDetails { - s.PrivateIpAddress = &v +// SetOriginGroups sets the OriginGroups field's value. +func (s *AwsCloudFrontDistributionDetails) SetOriginGroups(v *AwsCloudFrontDistributionOriginGroups) *AwsCloudFrontDistributionDetails { + s.OriginGroups = v return s } -// SetPublicIp sets the PublicIp field's value. -func (s *AwsEc2EipDetails) SetPublicIp(v string) *AwsEc2EipDetails { - s.PublicIp = &v +// SetOrigins sets the Origins field's value. +func (s *AwsCloudFrontDistributionDetails) SetOrigins(v *AwsCloudFrontDistributionOrigins) *AwsCloudFrontDistributionDetails { + s.Origins = v return s } -// SetPublicIpv4Pool sets the PublicIpv4Pool field's value. -func (s *AwsEc2EipDetails) SetPublicIpv4Pool(v string) *AwsEc2EipDetails { - s.PublicIpv4Pool = &v +// SetStatus sets the Status field's value. +func (s *AwsCloudFrontDistributionDetails) SetStatus(v string) *AwsCloudFrontDistributionDetails { + s.Status = &v return s } -// The details of an Amazon EC2 instance. -type AwsEc2InstanceDetails struct { - _ struct{} `type:"structure"` - - // The IAM profile ARN of the instance. - IamInstanceProfileArn *string `type:"string"` - - // The Amazon Machine Image (AMI) ID of the instance. - ImageId *string `type:"string"` - - // The IPv4 addresses associated with the instance. - IpV4Addresses []*string `type:"list"` - - // The IPv6 addresses associated with the instance. - IpV6Addresses []*string `type:"list"` +// SetWebAclId sets the WebAclId field's value. +func (s *AwsCloudFrontDistributionDetails) SetWebAclId(v string) *AwsCloudFrontDistributionDetails { + s.WebAclId = &v + return s +} - // The key name associated with the instance. - KeyName *string `type:"string"` +// A complex type that controls whether access logs are written for the distribution. +type AwsCloudFrontDistributionLogging struct { + _ struct{} `type:"structure"` - // Indicates when the instance was launched. - // - // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time - // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot - // contain spaces. For example, 2020-03-22T13:22:13.933Z. - LaunchedAt *string `type:"string"` + // The Amazon S3 bucket to store the access logs in. + Bucket *string `type:"string"` - // The identifier of the subnet that the instance was launched in. - SubnetId *string `type:"string"` + // With this field, you can enable or disable the selected distribution. + Enabled *bool `type:"boolean"` - // The instance type of the instance. - Type *string `type:"string"` + // Specifies whether you want CloudFront to include cookies in access logs. + IncludeCookies *bool `type:"boolean"` - // The identifier of the VPC that the instance was launched in. - VpcId *string `type:"string"` + // An optional string that you want CloudFront to use as a prefix to the access + // log filenames for this distribution. + Prefix *string `type:"string"` } // String returns the string representation -func (s AwsEc2InstanceDetails) String() string { +func (s AwsCloudFrontDistributionLogging) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsEc2InstanceDetails) GoString() string { +func (s AwsCloudFrontDistributionLogging) GoString() string { return s.String() } -// SetIamInstanceProfileArn sets the IamInstanceProfileArn field's value. -func (s *AwsEc2InstanceDetails) SetIamInstanceProfileArn(v string) *AwsEc2InstanceDetails { - s.IamInstanceProfileArn = &v +// SetBucket sets the Bucket field's value. +func (s *AwsCloudFrontDistributionLogging) SetBucket(v string) *AwsCloudFrontDistributionLogging { + s.Bucket = &v return s } -// SetImageId sets the ImageId field's value. -func (s *AwsEc2InstanceDetails) SetImageId(v string) *AwsEc2InstanceDetails { - s.ImageId = &v +// SetEnabled sets the Enabled field's value. +func (s *AwsCloudFrontDistributionLogging) SetEnabled(v bool) *AwsCloudFrontDistributionLogging { + s.Enabled = &v return s } -// SetIpV4Addresses sets the IpV4Addresses field's value. -func (s *AwsEc2InstanceDetails) SetIpV4Addresses(v []*string) *AwsEc2InstanceDetails { - s.IpV4Addresses = v +// SetIncludeCookies sets the IncludeCookies field's value. +func (s *AwsCloudFrontDistributionLogging) SetIncludeCookies(v bool) *AwsCloudFrontDistributionLogging { + s.IncludeCookies = &v return s } -// SetIpV6Addresses sets the IpV6Addresses field's value. -func (s *AwsEc2InstanceDetails) SetIpV6Addresses(v []*string) *AwsEc2InstanceDetails { - s.IpV6Addresses = v +// SetPrefix sets the Prefix field's value. +func (s *AwsCloudFrontDistributionLogging) SetPrefix(v string) *AwsCloudFrontDistributionLogging { + s.Prefix = &v return s } -// SetKeyName sets the KeyName field's value. -func (s *AwsEc2InstanceDetails) SetKeyName(v string) *AwsEc2InstanceDetails { - s.KeyName = &v - return s -} +// Information about an origin group for the distribution. +type AwsCloudFrontDistributionOriginGroup struct { + _ struct{} `type:"structure"` -// SetLaunchedAt sets the LaunchedAt field's value. -func (s *AwsEc2InstanceDetails) SetLaunchedAt(v string) *AwsEc2InstanceDetails { - s.LaunchedAt = &v - return s + // Provides the criteria for an origin group to fail over. + FailoverCriteria *AwsCloudFrontDistributionOriginGroupFailover `type:"structure"` } -// SetSubnetId sets the SubnetId field's value. -func (s *AwsEc2InstanceDetails) SetSubnetId(v string) *AwsEc2InstanceDetails { - s.SubnetId = &v - return s +// String returns the string representation +func (s AwsCloudFrontDistributionOriginGroup) String() string { + return awsutil.Prettify(s) } -// SetType sets the Type field's value. -func (s *AwsEc2InstanceDetails) SetType(v string) *AwsEc2InstanceDetails { - s.Type = &v - return s +// GoString returns the string representation +func (s AwsCloudFrontDistributionOriginGroup) GoString() string { + return s.String() } -// SetVpcId sets the VpcId field's value. -func (s *AwsEc2InstanceDetails) SetVpcId(v string) *AwsEc2InstanceDetails { - s.VpcId = &v +// SetFailoverCriteria sets the FailoverCriteria field's value. +func (s *AwsCloudFrontDistributionOriginGroup) SetFailoverCriteria(v *AwsCloudFrontDistributionOriginGroupFailover) *AwsCloudFrontDistributionOriginGroup { + s.FailoverCriteria = v return s } -// Information about the network interface attachment. -type AwsEc2NetworkInterfaceAttachment struct { +// Provides information about when an origin group fails over. +type AwsCloudFrontDistributionOriginGroupFailover struct { _ struct{} `type:"structure"` - // Indicates when the attachment initiated. - // - // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time - // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot - // contain spaces. For example, 2020-03-22T13:22:13.933Z. - AttachTime *string `type:"string"` + // Information about the status codes that cause an origin group to fail over. + StatusCodes *AwsCloudFrontDistributionOriginGroupFailoverStatusCodes `type:"structure"` +} - // The identifier of the network interface attachment - AttachmentId *string `type:"string"` +// String returns the string representation +func (s AwsCloudFrontDistributionOriginGroupFailover) String() string { + return awsutil.Prettify(s) +} - // Indicates whether the network interface is deleted when the instance is terminated. - DeleteOnTermination *bool `type:"boolean"` +// GoString returns the string representation +func (s AwsCloudFrontDistributionOriginGroupFailover) GoString() string { + return s.String() +} - // The device index of the network interface attachment on the instance. - DeviceIndex *int64 `type:"integer"` +// SetStatusCodes sets the StatusCodes field's value. +func (s *AwsCloudFrontDistributionOriginGroupFailover) SetStatusCodes(v *AwsCloudFrontDistributionOriginGroupFailoverStatusCodes) *AwsCloudFrontDistributionOriginGroupFailover { + s.StatusCodes = v + return s +} - // The ID of the instance. - InstanceId *string `type:"string"` +// The status codes that cause an origin group to fail over. +type AwsCloudFrontDistributionOriginGroupFailoverStatusCodes struct { + _ struct{} `type:"structure"` - // The AWS account ID of the owner of the instance. - InstanceOwnerId *string `type:"string"` + // The list of status code values that can cause a failover to the next origin. + Items []*int64 `type:"list"` - // The attachment state. - // - // Valid values: attaching | attached | detaching | detached - Status *string `type:"string"` + // The number of status codes that can cause a failover. + Quantity *int64 `type:"integer"` } // String returns the string representation -func (s AwsEc2NetworkInterfaceAttachment) String() string { +func (s AwsCloudFrontDistributionOriginGroupFailoverStatusCodes) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsEc2NetworkInterfaceAttachment) GoString() string { +func (s AwsCloudFrontDistributionOriginGroupFailoverStatusCodes) GoString() string { return s.String() } -// SetAttachTime sets the AttachTime field's value. -func (s *AwsEc2NetworkInterfaceAttachment) SetAttachTime(v string) *AwsEc2NetworkInterfaceAttachment { - s.AttachTime = &v +// SetItems sets the Items field's value. +func (s *AwsCloudFrontDistributionOriginGroupFailoverStatusCodes) SetItems(v []*int64) *AwsCloudFrontDistributionOriginGroupFailoverStatusCodes { + s.Items = v return s } -// SetAttachmentId sets the AttachmentId field's value. -func (s *AwsEc2NetworkInterfaceAttachment) SetAttachmentId(v string) *AwsEc2NetworkInterfaceAttachment { - s.AttachmentId = &v +// SetQuantity sets the Quantity field's value. +func (s *AwsCloudFrontDistributionOriginGroupFailoverStatusCodes) SetQuantity(v int64) *AwsCloudFrontDistributionOriginGroupFailoverStatusCodes { + s.Quantity = &v return s } -// SetDeleteOnTermination sets the DeleteOnTermination field's value. -func (s *AwsEc2NetworkInterfaceAttachment) SetDeleteOnTermination(v bool) *AwsEc2NetworkInterfaceAttachment { - s.DeleteOnTermination = &v - return s -} +// Provides information about origin groups that are associated with the distribution. +type AwsCloudFrontDistributionOriginGroups struct { + _ struct{} `type:"structure"` -// SetDeviceIndex sets the DeviceIndex field's value. -func (s *AwsEc2NetworkInterfaceAttachment) SetDeviceIndex(v int64) *AwsEc2NetworkInterfaceAttachment { - s.DeviceIndex = &v - return s + // The list of origin groups. + Items []*AwsCloudFrontDistributionOriginGroup `type:"list"` } -// SetInstanceId sets the InstanceId field's value. -func (s *AwsEc2NetworkInterfaceAttachment) SetInstanceId(v string) *AwsEc2NetworkInterfaceAttachment { - s.InstanceId = &v - return s +// String returns the string representation +func (s AwsCloudFrontDistributionOriginGroups) String() string { + return awsutil.Prettify(s) } -// SetInstanceOwnerId sets the InstanceOwnerId field's value. -func (s *AwsEc2NetworkInterfaceAttachment) SetInstanceOwnerId(v string) *AwsEc2NetworkInterfaceAttachment { - s.InstanceOwnerId = &v - return s +// GoString returns the string representation +func (s AwsCloudFrontDistributionOriginGroups) GoString() string { + return s.String() } -// SetStatus sets the Status field's value. -func (s *AwsEc2NetworkInterfaceAttachment) SetStatus(v string) *AwsEc2NetworkInterfaceAttachment { - s.Status = &v +// SetItems sets the Items field's value. +func (s *AwsCloudFrontDistributionOriginGroups) SetItems(v []*AwsCloudFrontDistributionOriginGroup) *AwsCloudFrontDistributionOriginGroups { + s.Items = v return s } -// Details about the network interface -type AwsEc2NetworkInterfaceDetails struct { +// A complex type that describes the Amazon S3 bucket, HTTP server (for example, +// a web server), Amazon Elemental MediaStore, or other server from which CloudFront +// gets your files. +type AwsCloudFrontDistributionOriginItem struct { _ struct{} `type:"structure"` - // The network interface attachment. - Attachment *AwsEc2NetworkInterfaceAttachment `type:"structure"` + // Amazon S3 origins: The DNS name of the Amazon S3 bucket from which you want + // CloudFront to get objects for this origin. + DomainName *string `type:"string"` - // The ID of the network interface. - NetworkInterfaceId *string `type:"string"` + // A unique identifier for the origin or origin group. + Id *string `type:"string"` - // Security groups for the network interface. - SecurityGroups []*AwsEc2NetworkInterfaceSecurityGroup `type:"list"` + // An optional element that causes CloudFront to request your content from a + // directory in your Amazon S3 bucket or your custom origin. + OriginPath *string `type:"string"` - // Indicates whether traffic to or from the instance is validated. - SourceDestCheck *bool `type:"boolean"` + // An origin that is an S3 bucket that is not configured with static website + // hosting. + S3OriginConfig *AwsCloudFrontDistributionOriginS3OriginConfig `type:"structure"` } // String returns the string representation -func (s AwsEc2NetworkInterfaceDetails) String() string { +func (s AwsCloudFrontDistributionOriginItem) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsEc2NetworkInterfaceDetails) GoString() string { +func (s AwsCloudFrontDistributionOriginItem) GoString() string { return s.String() } -// SetAttachment sets the Attachment field's value. -func (s *AwsEc2NetworkInterfaceDetails) SetAttachment(v *AwsEc2NetworkInterfaceAttachment) *AwsEc2NetworkInterfaceDetails { - s.Attachment = v +// SetDomainName sets the DomainName field's value. +func (s *AwsCloudFrontDistributionOriginItem) SetDomainName(v string) *AwsCloudFrontDistributionOriginItem { + s.DomainName = &v return s } -// SetNetworkInterfaceId sets the NetworkInterfaceId field's value. -func (s *AwsEc2NetworkInterfaceDetails) SetNetworkInterfaceId(v string) *AwsEc2NetworkInterfaceDetails { - s.NetworkInterfaceId = &v +// SetId sets the Id field's value. +func (s *AwsCloudFrontDistributionOriginItem) SetId(v string) *AwsCloudFrontDistributionOriginItem { + s.Id = &v return s } -// SetSecurityGroups sets the SecurityGroups field's value. -func (s *AwsEc2NetworkInterfaceDetails) SetSecurityGroups(v []*AwsEc2NetworkInterfaceSecurityGroup) *AwsEc2NetworkInterfaceDetails { - s.SecurityGroups = v +// SetOriginPath sets the OriginPath field's value. +func (s *AwsCloudFrontDistributionOriginItem) SetOriginPath(v string) *AwsCloudFrontDistributionOriginItem { + s.OriginPath = &v return s } -// SetSourceDestCheck sets the SourceDestCheck field's value. -func (s *AwsEc2NetworkInterfaceDetails) SetSourceDestCheck(v bool) *AwsEc2NetworkInterfaceDetails { - s.SourceDestCheck = &v +// SetS3OriginConfig sets the S3OriginConfig field's value. +func (s *AwsCloudFrontDistributionOriginItem) SetS3OriginConfig(v *AwsCloudFrontDistributionOriginS3OriginConfig) *AwsCloudFrontDistributionOriginItem { + s.S3OriginConfig = v return s } -// A security group associated with the network interface. -type AwsEc2NetworkInterfaceSecurityGroup struct { +// Information about an origin that is an S3 bucket that is not configured with +// static website hosting. +type AwsCloudFrontDistributionOriginS3OriginConfig struct { _ struct{} `type:"structure"` - // The ID of the security group. - GroupId *string `type:"string"` - - // The name of the security group. - GroupName *string `type:"string"` + // The CloudFront origin access identity to associate with the origin. + OriginAccessIdentity *string `type:"string"` } // String returns the string representation -func (s AwsEc2NetworkInterfaceSecurityGroup) String() string { +func (s AwsCloudFrontDistributionOriginS3OriginConfig) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsEc2NetworkInterfaceSecurityGroup) GoString() string { +func (s AwsCloudFrontDistributionOriginS3OriginConfig) GoString() string { return s.String() } -// SetGroupId sets the GroupId field's value. -func (s *AwsEc2NetworkInterfaceSecurityGroup) SetGroupId(v string) *AwsEc2NetworkInterfaceSecurityGroup { - s.GroupId = &v - return s -} - -// SetGroupName sets the GroupName field's value. -func (s *AwsEc2NetworkInterfaceSecurityGroup) SetGroupName(v string) *AwsEc2NetworkInterfaceSecurityGroup { - s.GroupName = &v +// SetOriginAccessIdentity sets the OriginAccessIdentity field's value. +func (s *AwsCloudFrontDistributionOriginS3OriginConfig) SetOriginAccessIdentity(v string) *AwsCloudFrontDistributionOriginS3OriginConfig { + s.OriginAccessIdentity = &v return s } -// Details about an EC2 security group. -type AwsEc2SecurityGroupDetails struct { +// A complex type that contains information about origins and origin groups +// for this distribution. +type AwsCloudFrontDistributionOrigins struct { _ struct{} `type:"structure"` - // The ID of the security group. - GroupId *string `type:"string"` - - // The name of the security group. - GroupName *string `type:"string"` - - // The inbound rules associated with the security group. - IpPermissions []*AwsEc2SecurityGroupIpPermission `type:"list"` - - // [VPC only] The outbound rules associated with the security group. - IpPermissionsEgress []*AwsEc2SecurityGroupIpPermission `type:"list"` - - // The AWS account ID of the owner of the security group. - OwnerId *string `type:"string"` - - // [VPC only] The ID of the VPC for the security group. - VpcId *string `type:"string"` -} + // A complex type that contains origins or origin groups for this distribution. + Items []*AwsCloudFrontDistributionOriginItem `type:"list"` +} // String returns the string representation -func (s AwsEc2SecurityGroupDetails) String() string { +func (s AwsCloudFrontDistributionOrigins) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsEc2SecurityGroupDetails) GoString() string { +func (s AwsCloudFrontDistributionOrigins) GoString() string { return s.String() } -// SetGroupId sets the GroupId field's value. -func (s *AwsEc2SecurityGroupDetails) SetGroupId(v string) *AwsEc2SecurityGroupDetails { - s.GroupId = &v +// SetItems sets the Items field's value. +func (s *AwsCloudFrontDistributionOrigins) SetItems(v []*AwsCloudFrontDistributionOriginItem) *AwsCloudFrontDistributionOrigins { + s.Items = v return s } -// SetGroupName sets the GroupName field's value. -func (s *AwsEc2SecurityGroupDetails) SetGroupName(v string) *AwsEc2SecurityGroupDetails { - s.GroupName = &v - return s -} +// Provides details about a CloudTrail trail. +type AwsCloudTrailTrailDetails struct { + _ struct{} `type:"structure"` -// SetIpPermissions sets the IpPermissions field's value. -func (s *AwsEc2SecurityGroupDetails) SetIpPermissions(v []*AwsEc2SecurityGroupIpPermission) *AwsEc2SecurityGroupDetails { - s.IpPermissions = v - return s -} + // The ARN of the log group that CloudTrail logs are delivered to. + CloudWatchLogsLogGroupArn *string `type:"string"` -// SetIpPermissionsEgress sets the IpPermissionsEgress field's value. -func (s *AwsEc2SecurityGroupDetails) SetIpPermissionsEgress(v []*AwsEc2SecurityGroupIpPermission) *AwsEc2SecurityGroupDetails { - s.IpPermissionsEgress = v - return s -} + // The ARN of the role that the CloudWatch Logs endpoint assumes when it writes + // to the log group. + CloudWatchLogsRoleArn *string `type:"string"` -// SetOwnerId sets the OwnerId field's value. -func (s *AwsEc2SecurityGroupDetails) SetOwnerId(v string) *AwsEc2SecurityGroupDetails { - s.OwnerId = &v - return s -} + // Indicates whether the trail has custom event selectors. + HasCustomEventSelectors *bool `type:"boolean"` -// SetVpcId sets the VpcId field's value. -func (s *AwsEc2SecurityGroupDetails) SetVpcId(v string) *AwsEc2SecurityGroupDetails { - s.VpcId = &v - return s -} + // The Region where the trail was created. + HomeRegion *string `type:"string"` -// An IP permission for an EC2 security group. -type AwsEc2SecurityGroupIpPermission struct { - _ struct{} `type:"structure"` + // Indicates whether the trail publishes events from global services such as + // IAM to the log files. + IncludeGlobalServiceEvents *bool `type:"boolean"` - // The start of the port range for the TCP and UDP protocols, or an ICMP/ICMPv6 - // type number. - // - // A value of -1 indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 - // types, you must specify all codes. - FromPort *int64 `type:"integer"` + // Indicates whether the trail applies only to the current Region or to all + // Regions. + IsMultiRegionTrail *bool `type:"boolean"` - // The IP protocol name (tcp, udp, icmp, icmpv6) or number. - // - // [VPC only] Use -1 to specify all protocols. - // - // When authorizing security group rules, specifying -1 or a protocol number - // other than tcp, udp, icmp, or icmpv6 allows traffic on all ports, regardless - // of any port range you specify. - // - // For tcp, udp, and icmp, you must specify a port range. - // - // For icmpv6, the port range is optional. If you omit the port range, traffic - // for all types and codes is allowed. - IpProtocol *string `type:"string"` + // Whether the trail is created for all accounts in an organization in AWS Organizations, + // or only for the current AWS account. + IsOrganizationTrail *bool `type:"boolean"` - // The IPv4 ranges. - IpRanges []*AwsEc2SecurityGroupIpRange `type:"list"` + // The AWS KMS key ID to use to encrypt the logs. + KmsKeyId *string `type:"string"` - // The IPv6 ranges. - Ipv6Ranges []*AwsEc2SecurityGroupIpv6Range `type:"list"` + // Indicates whether CloudTrail log file validation is enabled. + LogFileValidationEnabled *bool `type:"boolean"` - // [VPC only] The prefix list IDs for an AWS service. With outbound rules, this - // is the AWS service to access through a VPC endpoint from instances associated - // with the security group. - PrefixListIds []*AwsEc2SecurityGroupPrefixListId `type:"list"` + // The name of the trail. + Name *string `type:"string"` - // The end of the port range for the TCP and UDP protocols, or an ICMP/ICMPv6 - // code. - // - // A value of -1 indicates all ICMP/ICMPv6 codes. If you specify all ICMP/ICMPv6 - // types, you must specify all codes. - ToPort *int64 `type:"integer"` + // The name of the S3 bucket where the log files are published. + S3BucketName *string `type:"string"` - // The security group and AWS account ID pairs. - UserIdGroupPairs []*AwsEc2SecurityGroupUserIdGroupPair `type:"list"` + // The S3 key prefix. The key prefix is added after the name of the S3 bucket + // where the log files are published. + S3KeyPrefix *string `type:"string"` + + // The ARN of the SNS topic that is used for notifications of log file delivery. + SnsTopicArn *string `type:"string"` + + // The name of the SNS topic that is used for notifications of log file delivery. + SnsTopicName *string `type:"string"` + + // The ARN of the trail. + TrailArn *string `type:"string"` } // String returns the string representation -func (s AwsEc2SecurityGroupIpPermission) String() string { +func (s AwsCloudTrailTrailDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsEc2SecurityGroupIpPermission) GoString() string { +func (s AwsCloudTrailTrailDetails) GoString() string { return s.String() } -// SetFromPort sets the FromPort field's value. -func (s *AwsEc2SecurityGroupIpPermission) SetFromPort(v int64) *AwsEc2SecurityGroupIpPermission { - s.FromPort = &v +// SetCloudWatchLogsLogGroupArn sets the CloudWatchLogsLogGroupArn field's value. +func (s *AwsCloudTrailTrailDetails) SetCloudWatchLogsLogGroupArn(v string) *AwsCloudTrailTrailDetails { + s.CloudWatchLogsLogGroupArn = &v return s } -// SetIpProtocol sets the IpProtocol field's value. -func (s *AwsEc2SecurityGroupIpPermission) SetIpProtocol(v string) *AwsEc2SecurityGroupIpPermission { - s.IpProtocol = &v +// SetCloudWatchLogsRoleArn sets the CloudWatchLogsRoleArn field's value. +func (s *AwsCloudTrailTrailDetails) SetCloudWatchLogsRoleArn(v string) *AwsCloudTrailTrailDetails { + s.CloudWatchLogsRoleArn = &v return s } -// SetIpRanges sets the IpRanges field's value. -func (s *AwsEc2SecurityGroupIpPermission) SetIpRanges(v []*AwsEc2SecurityGroupIpRange) *AwsEc2SecurityGroupIpPermission { - s.IpRanges = v +// SetHasCustomEventSelectors sets the HasCustomEventSelectors field's value. +func (s *AwsCloudTrailTrailDetails) SetHasCustomEventSelectors(v bool) *AwsCloudTrailTrailDetails { + s.HasCustomEventSelectors = &v return s } -// SetIpv6Ranges sets the Ipv6Ranges field's value. -func (s *AwsEc2SecurityGroupIpPermission) SetIpv6Ranges(v []*AwsEc2SecurityGroupIpv6Range) *AwsEc2SecurityGroupIpPermission { - s.Ipv6Ranges = v +// SetHomeRegion sets the HomeRegion field's value. +func (s *AwsCloudTrailTrailDetails) SetHomeRegion(v string) *AwsCloudTrailTrailDetails { + s.HomeRegion = &v return s } -// SetPrefixListIds sets the PrefixListIds field's value. -func (s *AwsEc2SecurityGroupIpPermission) SetPrefixListIds(v []*AwsEc2SecurityGroupPrefixListId) *AwsEc2SecurityGroupIpPermission { - s.PrefixListIds = v +// SetIncludeGlobalServiceEvents sets the IncludeGlobalServiceEvents field's value. +func (s *AwsCloudTrailTrailDetails) SetIncludeGlobalServiceEvents(v bool) *AwsCloudTrailTrailDetails { + s.IncludeGlobalServiceEvents = &v return s } -// SetToPort sets the ToPort field's value. -func (s *AwsEc2SecurityGroupIpPermission) SetToPort(v int64) *AwsEc2SecurityGroupIpPermission { - s.ToPort = &v +// SetIsMultiRegionTrail sets the IsMultiRegionTrail field's value. +func (s *AwsCloudTrailTrailDetails) SetIsMultiRegionTrail(v bool) *AwsCloudTrailTrailDetails { + s.IsMultiRegionTrail = &v return s } -// SetUserIdGroupPairs sets the UserIdGroupPairs field's value. -func (s *AwsEc2SecurityGroupIpPermission) SetUserIdGroupPairs(v []*AwsEc2SecurityGroupUserIdGroupPair) *AwsEc2SecurityGroupIpPermission { - s.UserIdGroupPairs = v +// SetIsOrganizationTrail sets the IsOrganizationTrail field's value. +func (s *AwsCloudTrailTrailDetails) SetIsOrganizationTrail(v bool) *AwsCloudTrailTrailDetails { + s.IsOrganizationTrail = &v return s } -// A range of IPv4 addresses. -type AwsEc2SecurityGroupIpRange struct { - _ struct{} `type:"structure"` - - // The IPv4 CIDR range. You can specify either a CIDR range or a source security - // group, but not both. To specify a single IPv4 address, use the /32 prefix - // length. - CidrIp *string `type:"string"` -} - -// String returns the string representation -func (s AwsEc2SecurityGroupIpRange) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s AwsEc2SecurityGroupIpRange) GoString() string { - return s.String() -} - -// SetCidrIp sets the CidrIp field's value. -func (s *AwsEc2SecurityGroupIpRange) SetCidrIp(v string) *AwsEc2SecurityGroupIpRange { - s.CidrIp = &v +// SetKmsKeyId sets the KmsKeyId field's value. +func (s *AwsCloudTrailTrailDetails) SetKmsKeyId(v string) *AwsCloudTrailTrailDetails { + s.KmsKeyId = &v return s } -// A range of IPv6 addresses. -type AwsEc2SecurityGroupIpv6Range struct { - _ struct{} `type:"structure"` - - // The IPv6 CIDR range. You can specify either a CIDR range or a source security - // group, but not both. To specify a single IPv6 address, use the /128 prefix - // length. - CidrIpv6 *string `type:"string"` -} - -// String returns the string representation -func (s AwsEc2SecurityGroupIpv6Range) String() string { - return awsutil.Prettify(s) +// SetLogFileValidationEnabled sets the LogFileValidationEnabled field's value. +func (s *AwsCloudTrailTrailDetails) SetLogFileValidationEnabled(v bool) *AwsCloudTrailTrailDetails { + s.LogFileValidationEnabled = &v + return s } -// GoString returns the string representation -func (s AwsEc2SecurityGroupIpv6Range) GoString() string { - return s.String() +// SetName sets the Name field's value. +func (s *AwsCloudTrailTrailDetails) SetName(v string) *AwsCloudTrailTrailDetails { + s.Name = &v + return s } -// SetCidrIpv6 sets the CidrIpv6 field's value. -func (s *AwsEc2SecurityGroupIpv6Range) SetCidrIpv6(v string) *AwsEc2SecurityGroupIpv6Range { - s.CidrIpv6 = &v +// SetS3BucketName sets the S3BucketName field's value. +func (s *AwsCloudTrailTrailDetails) SetS3BucketName(v string) *AwsCloudTrailTrailDetails { + s.S3BucketName = &v return s } -// A prefix list ID. -type AwsEc2SecurityGroupPrefixListId struct { - _ struct{} `type:"structure"` - - // The ID of the prefix. - PrefixListId *string `type:"string"` +// SetS3KeyPrefix sets the S3KeyPrefix field's value. +func (s *AwsCloudTrailTrailDetails) SetS3KeyPrefix(v string) *AwsCloudTrailTrailDetails { + s.S3KeyPrefix = &v + return s } -// String returns the string representation -func (s AwsEc2SecurityGroupPrefixListId) String() string { - return awsutil.Prettify(s) +// SetSnsTopicArn sets the SnsTopicArn field's value. +func (s *AwsCloudTrailTrailDetails) SetSnsTopicArn(v string) *AwsCloudTrailTrailDetails { + s.SnsTopicArn = &v + return s } -// GoString returns the string representation -func (s AwsEc2SecurityGroupPrefixListId) GoString() string { - return s.String() +// SetSnsTopicName sets the SnsTopicName field's value. +func (s *AwsCloudTrailTrailDetails) SetSnsTopicName(v string) *AwsCloudTrailTrailDetails { + s.SnsTopicName = &v + return s } -// SetPrefixListId sets the PrefixListId field's value. -func (s *AwsEc2SecurityGroupPrefixListId) SetPrefixListId(v string) *AwsEc2SecurityGroupPrefixListId { - s.PrefixListId = &v +// SetTrailArn sets the TrailArn field's value. +func (s *AwsCloudTrailTrailDetails) SetTrailArn(v string) *AwsCloudTrailTrailDetails { + s.TrailArn = &v return s } -// A relationship between a security group and a user. -type AwsEc2SecurityGroupUserIdGroupPair struct { +// Information about an AWS CodeBuild project. +type AwsCodeBuildProjectDetails struct { _ struct{} `type:"structure"` - // The ID of the security group. - GroupId *string `type:"string"` + // The AWS Key Management Service (AWS KMS) customer master key (CMK) used to + // encrypt the build output artifacts. + // + // You can specify either the Amazon Resource Name (ARN) of the CMK or, if available, + // the CMK alias (using the format alias/alias-name). + EncryptionKey *string `type:"string"` - // The name of the security group. - GroupName *string `type:"string"` + // Information about the build environment for this build project. + Environment *AwsCodeBuildProjectEnvironment `type:"structure"` - // The status of a VPC peering connection, if applicable. - PeeringStatus *string `type:"string"` + // The name of the build project. + Name *string `type:"string"` - // The ID of an AWS account. - // - // For a referenced security group in another VPC, the account ID of the referenced - // security group is returned in the response. If the referenced security group - // is deleted, this value is not returned. - // - // [EC2-Classic] Required when adding or removing rules that reference a security - // group in another AWS. - UserId *string `type:"string"` + // The ARN of the IAM role that enables AWS CodeBuild to interact with dependent + // AWS services on behalf of the AWS account. + ServiceRole *string `type:"string"` - // The ID of the VPC for the referenced security group, if applicable. - VpcId *string `type:"string"` + // Information about the build input source code for this build project. + Source *AwsCodeBuildProjectSource `type:"structure"` - // The ID of the VPC peering connection, if applicable. - VpcPeeringConnectionId *string `type:"string"` + // Information about the VPC configuration that AWS CodeBuild accesses. + VpcConfig *AwsCodeBuildProjectVpcConfig `type:"structure"` } // String returns the string representation -func (s AwsEc2SecurityGroupUserIdGroupPair) String() string { +func (s AwsCodeBuildProjectDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsEc2SecurityGroupUserIdGroupPair) GoString() string { +func (s AwsCodeBuildProjectDetails) GoString() string { return s.String() } -// SetGroupId sets the GroupId field's value. -func (s *AwsEc2SecurityGroupUserIdGroupPair) SetGroupId(v string) *AwsEc2SecurityGroupUserIdGroupPair { - s.GroupId = &v +// SetEncryptionKey sets the EncryptionKey field's value. +func (s *AwsCodeBuildProjectDetails) SetEncryptionKey(v string) *AwsCodeBuildProjectDetails { + s.EncryptionKey = &v return s } -// SetGroupName sets the GroupName field's value. -func (s *AwsEc2SecurityGroupUserIdGroupPair) SetGroupName(v string) *AwsEc2SecurityGroupUserIdGroupPair { - s.GroupName = &v +// SetEnvironment sets the Environment field's value. +func (s *AwsCodeBuildProjectDetails) SetEnvironment(v *AwsCodeBuildProjectEnvironment) *AwsCodeBuildProjectDetails { + s.Environment = v return s } -// SetPeeringStatus sets the PeeringStatus field's value. -func (s *AwsEc2SecurityGroupUserIdGroupPair) SetPeeringStatus(v string) *AwsEc2SecurityGroupUserIdGroupPair { - s.PeeringStatus = &v +// SetName sets the Name field's value. +func (s *AwsCodeBuildProjectDetails) SetName(v string) *AwsCodeBuildProjectDetails { + s.Name = &v return s } -// SetUserId sets the UserId field's value. -func (s *AwsEc2SecurityGroupUserIdGroupPair) SetUserId(v string) *AwsEc2SecurityGroupUserIdGroupPair { - s.UserId = &v +// SetServiceRole sets the ServiceRole field's value. +func (s *AwsCodeBuildProjectDetails) SetServiceRole(v string) *AwsCodeBuildProjectDetails { + s.ServiceRole = &v return s } -// SetVpcId sets the VpcId field's value. -func (s *AwsEc2SecurityGroupUserIdGroupPair) SetVpcId(v string) *AwsEc2SecurityGroupUserIdGroupPair { - s.VpcId = &v - return s -} +// SetSource sets the Source field's value. +func (s *AwsCodeBuildProjectDetails) SetSource(v *AwsCodeBuildProjectSource) *AwsCodeBuildProjectDetails { + s.Source = v + return s +} -// SetVpcPeeringConnectionId sets the VpcPeeringConnectionId field's value. -func (s *AwsEc2SecurityGroupUserIdGroupPair) SetVpcPeeringConnectionId(v string) *AwsEc2SecurityGroupUserIdGroupPair { - s.VpcPeeringConnectionId = &v +// SetVpcConfig sets the VpcConfig field's value. +func (s *AwsCodeBuildProjectDetails) SetVpcConfig(v *AwsCodeBuildProjectVpcConfig) *AwsCodeBuildProjectDetails { + s.VpcConfig = v return s } -// An attachment to an AWS EC2 volume. -type AwsEc2VolumeAttachment struct { +// Information about the build environment for this build project. +type AwsCodeBuildProjectEnvironment struct { _ struct{} `type:"structure"` - // The datetime when the attachment initiated. - AttachTime *string `type:"string"` + // The certificate to use with this build project. + Certificate *string `type:"string"` - // Whether the EBS volume is deleted when the EC2 instance is terminated. - DeleteOnTermination *bool `type:"boolean"` + // The type of credentials AWS CodeBuild uses to pull images in your build. + // + // Valid values: + // + // * CODEBUILD specifies that AWS CodeBuild uses its own credentials. This + // requires that you modify your ECR repository policy to trust the AWS CodeBuild + // service principal. + // + // * SERVICE_ROLE specifies that AWS CodeBuild uses your build project's + // service role. + // + // When you use a cross-account or private registry image, you must use SERVICE_ROLE + // credentials. When you use an AWS CodeBuild curated image, you must use CODEBUILD + // credentials. + ImagePullCredentialsType *string `type:"string"` - // The identifier of the EC2 instance. - InstanceId *string `type:"string"` + // The credentials for access to a private registry. + RegistryCredential *AwsCodeBuildProjectEnvironmentRegistryCredential `type:"structure"` - // The attachment state of the volume. - Status *string `type:"string"` + // The type of build environment to use for related builds. + // + // The environment type ARM_CONTAINER is available only in Regions US East (N. + // Virginia), US East (Ohio), US West (Oregon), Europe (Ireland), Asia Pacific + // (Mumbai), Asia Pacific (Tokyo), Asia Pacific (Sydney), and Europe (Frankfurt). + // + // The environment type LINUX_CONTAINER with compute type build.general1.2xlarge + // is available only in Regions US East (N. Virginia), US East (N. Virginia), + // US West (Oregon), Canada (Central), Europe (Ireland), Europe (London), Europe + // (Frankfurt), Asia Pacific (Tokyo), Asia Pacific (Seoul), Asia Pacific (Singapore), + // Asia Pacific (Sydney), China (Beijing), and China (Ningxia). + // + // The environment type LINUX_GPU_CONTAINER is available only in Regions US + // East (N. Virginia), US East (N. Virginia), US West (Oregon), Canada (Central), + // Europe (Ireland), Europe (London), Europe (Frankfurt), Asia Pacific (Tokyo), + // Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), China + // (Beijing), and China (Ningxia). + // + // Valid values: WINDOWS_CONTAINER | LINUX_CONTAINER | LINUX_GPU_CONTAINER | + // ARM_CONTAINER + Type *string `type:"string"` } // String returns the string representation -func (s AwsEc2VolumeAttachment) String() string { +func (s AwsCodeBuildProjectEnvironment) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsEc2VolumeAttachment) GoString() string { +func (s AwsCodeBuildProjectEnvironment) GoString() string { return s.String() } -// SetAttachTime sets the AttachTime field's value. -func (s *AwsEc2VolumeAttachment) SetAttachTime(v string) *AwsEc2VolumeAttachment { - s.AttachTime = &v +// SetCertificate sets the Certificate field's value. +func (s *AwsCodeBuildProjectEnvironment) SetCertificate(v string) *AwsCodeBuildProjectEnvironment { + s.Certificate = &v return s } -// SetDeleteOnTermination sets the DeleteOnTermination field's value. -func (s *AwsEc2VolumeAttachment) SetDeleteOnTermination(v bool) *AwsEc2VolumeAttachment { - s.DeleteOnTermination = &v +// SetImagePullCredentialsType sets the ImagePullCredentialsType field's value. +func (s *AwsCodeBuildProjectEnvironment) SetImagePullCredentialsType(v string) *AwsCodeBuildProjectEnvironment { + s.ImagePullCredentialsType = &v return s } -// SetInstanceId sets the InstanceId field's value. -func (s *AwsEc2VolumeAttachment) SetInstanceId(v string) *AwsEc2VolumeAttachment { - s.InstanceId = &v +// SetRegistryCredential sets the RegistryCredential field's value. +func (s *AwsCodeBuildProjectEnvironment) SetRegistryCredential(v *AwsCodeBuildProjectEnvironmentRegistryCredential) *AwsCodeBuildProjectEnvironment { + s.RegistryCredential = v return s } -// SetStatus sets the Status field's value. -func (s *AwsEc2VolumeAttachment) SetStatus(v string) *AwsEc2VolumeAttachment { - s.Status = &v +// SetType sets the Type field's value. +func (s *AwsCodeBuildProjectEnvironment) SetType(v string) *AwsCodeBuildProjectEnvironment { + s.Type = &v return s } -// Details about an EC2 volume. -type AwsEc2VolumeDetails struct { +// The credentials for access to a private registry. +type AwsCodeBuildProjectEnvironmentRegistryCredential struct { _ struct{} `type:"structure"` - // The volume attachments. - Attachments []*AwsEc2VolumeAttachment `type:"list"` - - // Indicates when the volume was created. + // The Amazon Resource Name (ARN) or name of credentials created using AWS Secrets + // Manager. // - // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time - // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot - // contain spaces. For example, 2020-03-22T13:22:13.933Z. - CreateTime *string `type:"string"` - - // Whether the volume is encrypted. - Encrypted *bool `type:"boolean"` - - // The ARN of the AWS Key Management Service (AWS KMS) customer master key (CMK) - // that was used to protect the volume encryption key for the volume. - KmsKeyId *string `type:"string"` - - // The size of the volume, in GiBs. - Size *int64 `type:"integer"` - - // The snapshot from which the volume was created. - SnapshotId *string `type:"string"` + // The credential can use the name of the credentials only if they exist in + // your current AWS Region. + Credential *string `type:"string"` - // The volume state. - Status *string `type:"string"` + // The service that created the credentials to access a private Docker registry. + // + // The valid value,SECRETS_MANAGER, is for AWS Secrets Manager. + CredentialProvider *string `type:"string"` } // String returns the string representation -func (s AwsEc2VolumeDetails) String() string { +func (s AwsCodeBuildProjectEnvironmentRegistryCredential) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsEc2VolumeDetails) GoString() string { +func (s AwsCodeBuildProjectEnvironmentRegistryCredential) GoString() string { return s.String() } -// SetAttachments sets the Attachments field's value. -func (s *AwsEc2VolumeDetails) SetAttachments(v []*AwsEc2VolumeAttachment) *AwsEc2VolumeDetails { - s.Attachments = v - return s -} - -// SetCreateTime sets the CreateTime field's value. -func (s *AwsEc2VolumeDetails) SetCreateTime(v string) *AwsEc2VolumeDetails { - s.CreateTime = &v - return s -} - -// SetEncrypted sets the Encrypted field's value. -func (s *AwsEc2VolumeDetails) SetEncrypted(v bool) *AwsEc2VolumeDetails { - s.Encrypted = &v - return s -} - -// SetKmsKeyId sets the KmsKeyId field's value. -func (s *AwsEc2VolumeDetails) SetKmsKeyId(v string) *AwsEc2VolumeDetails { - s.KmsKeyId = &v - return s -} - -// SetSize sets the Size field's value. -func (s *AwsEc2VolumeDetails) SetSize(v int64) *AwsEc2VolumeDetails { - s.Size = &v - return s -} - -// SetSnapshotId sets the SnapshotId field's value. -func (s *AwsEc2VolumeDetails) SetSnapshotId(v string) *AwsEc2VolumeDetails { - s.SnapshotId = &v +// SetCredential sets the Credential field's value. +func (s *AwsCodeBuildProjectEnvironmentRegistryCredential) SetCredential(v string) *AwsCodeBuildProjectEnvironmentRegistryCredential { + s.Credential = &v return s } -// SetStatus sets the Status field's value. -func (s *AwsEc2VolumeDetails) SetStatus(v string) *AwsEc2VolumeDetails { - s.Status = &v +// SetCredentialProvider sets the CredentialProvider field's value. +func (s *AwsCodeBuildProjectEnvironmentRegistryCredential) SetCredentialProvider(v string) *AwsCodeBuildProjectEnvironmentRegistryCredential { + s.CredentialProvider = &v return s } -// Details about an EC2 VPC. -type AwsEc2VpcDetails struct { +// Information about the build input source code for this build project. +type AwsCodeBuildProjectSource struct { _ struct{} `type:"structure"` - // Information about the IPv4 CIDR blocks associated with the VPC. - CidrBlockAssociationSet []*CidrBlockAssociation `type:"list"` + // Information about the Git clone depth for the build project. + GitCloneDepth *int64 `type:"integer"` - // The identifier of the set of Dynamic Host Configuration Protocol (DHCP) options - // that are associated with the VPC. If the default options are associated with - // the VPC, then this is default. - DhcpOptionsId *string `type:"string"` + // Whether to ignore SSL warnings while connecting to the project source code. + InsecureSsl *bool `type:"boolean"` - // Information about the IPv6 CIDR blocks associated with the VPC. - Ipv6CidrBlockAssociationSet []*Ipv6CidrBlockAssociation `type:"list"` + // Information about the location of the source code to be built. + // + // Valid values include: + // + // * For source code settings that are specified in the source action of + // a pipeline in AWS CodePipeline, location should not be specified. If it + // is specified, AWS CodePipeline ignores it. This is because AWS CodePipeline + // uses the settings in a pipeline's source action instead of this value. + // + // * For source code in an AWS CodeCommit repository, the HTTPS clone URL + // to the repository that contains the source code and the build spec file + // (for example, https://git-codecommit.region-ID.amazonaws.com/v1/repos/repo-name + // ). + // + // * For source code in an S3 input bucket, one of the following. The path + // to the ZIP file that contains the source code (for example, bucket-name/path/to/object-name.zip). + // The path to the folder that contains the source code (for example, bucket-name/path/to/source-code/folder/). + // + // * For source code in a GitHub repository, the HTTPS clone URL to the repository + // that contains the source and the build spec file. + // + // * For source code in a Bitbucket repository, the HTTPS clone URL to the + // repository that contains the source and the build spec file. + Location *string `type:"string"` - // The current state of the VPC. - State *string `type:"string"` + // The type of repository that contains the source code to be built. Valid values + // are: + // + // * BITBUCKET - The source code is in a Bitbucket repository. + // + // * CODECOMMIT - The source code is in an AWS CodeCommit repository. + // + // * CODEPIPELINE - The source code settings are specified in the source + // action of a pipeline in AWS CodePipeline. + // + // * GITHUB - The source code is in a GitHub repository. + // + // * GITHUB_ENTERPRISE - The source code is in a GitHub Enterprise repository. + // + // * NO_SOURCE - The project does not have input source code. + // + // * S3 - The source code is in an S3 input bucket. + Type *string `type:"string"` } // String returns the string representation -func (s AwsEc2VpcDetails) String() string { +func (s AwsCodeBuildProjectSource) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsEc2VpcDetails) GoString() string { +func (s AwsCodeBuildProjectSource) GoString() string { return s.String() } -// SetCidrBlockAssociationSet sets the CidrBlockAssociationSet field's value. -func (s *AwsEc2VpcDetails) SetCidrBlockAssociationSet(v []*CidrBlockAssociation) *AwsEc2VpcDetails { - s.CidrBlockAssociationSet = v +// SetGitCloneDepth sets the GitCloneDepth field's value. +func (s *AwsCodeBuildProjectSource) SetGitCloneDepth(v int64) *AwsCodeBuildProjectSource { + s.GitCloneDepth = &v return s } -// SetDhcpOptionsId sets the DhcpOptionsId field's value. -func (s *AwsEc2VpcDetails) SetDhcpOptionsId(v string) *AwsEc2VpcDetails { - s.DhcpOptionsId = &v +// SetInsecureSsl sets the InsecureSsl field's value. +func (s *AwsCodeBuildProjectSource) SetInsecureSsl(v bool) *AwsCodeBuildProjectSource { + s.InsecureSsl = &v return s } -// SetIpv6CidrBlockAssociationSet sets the Ipv6CidrBlockAssociationSet field's value. -func (s *AwsEc2VpcDetails) SetIpv6CidrBlockAssociationSet(v []*Ipv6CidrBlockAssociation) *AwsEc2VpcDetails { - s.Ipv6CidrBlockAssociationSet = v +// SetLocation sets the Location field's value. +func (s *AwsCodeBuildProjectSource) SetLocation(v string) *AwsCodeBuildProjectSource { + s.Location = &v return s } -// SetState sets the State field's value. -func (s *AwsEc2VpcDetails) SetState(v string) *AwsEc2VpcDetails { - s.State = &v +// SetType sets the Type field's value. +func (s *AwsCodeBuildProjectSource) SetType(v string) *AwsCodeBuildProjectSource { + s.Type = &v return s } -// Information about an Elasticsearch domain. -type AwsElasticsearchDomainDetails struct { +// Information about the VPC configuration that AWS CodeBuild accesses. +type AwsCodeBuildProjectVpcConfig struct { _ struct{} `type:"structure"` - // IAM policy document specifying the access policies for the new Amazon ES - // domain. - AccessPolicies *string `type:"string"` - - // Additional options for the domain endpoint. - DomainEndpointOptions *AwsElasticsearchDomainDomainEndpointOptions `type:"structure"` - - // Unique identifier for an Amazon ES domain. - DomainId *string `type:"string"` - - // Name of an Amazon ES domain. - // - // Domain names are unique across all domains owned by the same account within - // an AWS Region. - // - // Domain names must start with a lowercase letter and must be between 3 and - // 28 characters. - // - // Valid characters are a-z (lowercase only), 0-9, and – (hyphen). - DomainName *string `type:"string"` - - // Elasticsearch version. - ElasticsearchVersion *string `type:"string"` - - // Details about the configuration for encryption at rest. - EncryptionAtRestOptions *AwsElasticsearchDomainEncryptionAtRestOptions `type:"structure"` - - // Domain-specific endpoint used to submit index, search, and data upload requests - // to an Amazon ES domain. - // - // The endpoint is a service URL. - Endpoint *string `type:"string"` - - // The key-value pair that exists if the Amazon ES domain uses VPC endpoints. - Endpoints map[string]*string `type:"map"` + // A list of one or more security group IDs in your Amazon VPC. + SecurityGroupIds []*string `type:"list"` - // Details about the configuration for node-to-node encryption. - NodeToNodeEncryptionOptions *AwsElasticsearchDomainNodeToNodeEncryptionOptions `type:"structure"` + // A list of one or more subnet IDs in your Amazon VPC. + Subnets []*string `type:"list"` - // Information that Amazon ES derives based on VPCOptions for the domain. - VPCOptions *AwsElasticsearchDomainVPCOptions `type:"structure"` + // The ID of the VPC. + VpcId *string `type:"string"` } // String returns the string representation -func (s AwsElasticsearchDomainDetails) String() string { +func (s AwsCodeBuildProjectVpcConfig) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsElasticsearchDomainDetails) GoString() string { +func (s AwsCodeBuildProjectVpcConfig) GoString() string { return s.String() } -// SetAccessPolicies sets the AccessPolicies field's value. -func (s *AwsElasticsearchDomainDetails) SetAccessPolicies(v string) *AwsElasticsearchDomainDetails { - s.AccessPolicies = &v - return s -} - -// SetDomainEndpointOptions sets the DomainEndpointOptions field's value. -func (s *AwsElasticsearchDomainDetails) SetDomainEndpointOptions(v *AwsElasticsearchDomainDomainEndpointOptions) *AwsElasticsearchDomainDetails { - s.DomainEndpointOptions = v - return s -} - -// SetDomainId sets the DomainId field's value. -func (s *AwsElasticsearchDomainDetails) SetDomainId(v string) *AwsElasticsearchDomainDetails { - s.DomainId = &v - return s -} - -// SetDomainName sets the DomainName field's value. -func (s *AwsElasticsearchDomainDetails) SetDomainName(v string) *AwsElasticsearchDomainDetails { - s.DomainName = &v +// SetSecurityGroupIds sets the SecurityGroupIds field's value. +func (s *AwsCodeBuildProjectVpcConfig) SetSecurityGroupIds(v []*string) *AwsCodeBuildProjectVpcConfig { + s.SecurityGroupIds = v return s } -// SetElasticsearchVersion sets the ElasticsearchVersion field's value. -func (s *AwsElasticsearchDomainDetails) SetElasticsearchVersion(v string) *AwsElasticsearchDomainDetails { - s.ElasticsearchVersion = &v +// SetSubnets sets the Subnets field's value. +func (s *AwsCodeBuildProjectVpcConfig) SetSubnets(v []*string) *AwsCodeBuildProjectVpcConfig { + s.Subnets = v return s } -// SetEncryptionAtRestOptions sets the EncryptionAtRestOptions field's value. -func (s *AwsElasticsearchDomainDetails) SetEncryptionAtRestOptions(v *AwsElasticsearchDomainEncryptionAtRestOptions) *AwsElasticsearchDomainDetails { - s.EncryptionAtRestOptions = v +// SetVpcId sets the VpcId field's value. +func (s *AwsCodeBuildProjectVpcConfig) SetVpcId(v string) *AwsCodeBuildProjectVpcConfig { + s.VpcId = &v return s } -// SetEndpoint sets the Endpoint field's value. -func (s *AwsElasticsearchDomainDetails) SetEndpoint(v string) *AwsElasticsearchDomainDetails { - s.Endpoint = &v - return s -} +// Contains the cross-origin resource sharing (CORS) configuration for the API. +// CORS is only supported for HTTP APIs. +type AwsCorsConfiguration struct { + _ struct{} `type:"structure"` -// SetEndpoints sets the Endpoints field's value. -func (s *AwsElasticsearchDomainDetails) SetEndpoints(v map[string]*string) *AwsElasticsearchDomainDetails { - s.Endpoints = v - return s -} + // Indicates whether the CORS request includes credentials. + AllowCredentials *bool `type:"boolean"` -// SetNodeToNodeEncryptionOptions sets the NodeToNodeEncryptionOptions field's value. -func (s *AwsElasticsearchDomainDetails) SetNodeToNodeEncryptionOptions(v *AwsElasticsearchDomainNodeToNodeEncryptionOptions) *AwsElasticsearchDomainDetails { - s.NodeToNodeEncryptionOptions = v - return s -} + // The allowed headers for CORS requests. + AllowHeaders []*string `type:"list"` -// SetVPCOptions sets the VPCOptions field's value. -func (s *AwsElasticsearchDomainDetails) SetVPCOptions(v *AwsElasticsearchDomainVPCOptions) *AwsElasticsearchDomainDetails { - s.VPCOptions = v - return s -} + // The allowed methods for CORS requests. + AllowMethods []*string `type:"list"` -// Additional options for the domain endpoint, such as whether to require HTTPS -// for all traffic. -type AwsElasticsearchDomainDomainEndpointOptions struct { - _ struct{} `type:"structure"` + // The allowed origins for CORS requests. + AllowOrigins []*string `type:"list"` - // Whether to require that all traffic to the domain arrive over HTTPS. - EnforceHTTPS *bool `type:"boolean"` + // The exposed headers for CORS requests. + ExposeHeaders []*string `type:"list"` - // The TLS security policy to apply to the HTTPS endpoint of the Elasticsearch - // domain. - // - // Valid values: - // - // * Policy-Min-TLS-1-0-2019-07, which supports TLSv1.0 and higher - // - // * Policy-Min-TLS-1-2-2019-07, which only supports TLSv1.2 - TLSSecurityPolicy *string `type:"string"` + // The number of seconds for which the browser caches preflight request results. + MaxAge *int64 `type:"integer"` } // String returns the string representation -func (s AwsElasticsearchDomainDomainEndpointOptions) String() string { +func (s AwsCorsConfiguration) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsElasticsearchDomainDomainEndpointOptions) GoString() string { +func (s AwsCorsConfiguration) GoString() string { return s.String() } -// SetEnforceHTTPS sets the EnforceHTTPS field's value. -func (s *AwsElasticsearchDomainDomainEndpointOptions) SetEnforceHTTPS(v bool) *AwsElasticsearchDomainDomainEndpointOptions { - s.EnforceHTTPS = &v +// SetAllowCredentials sets the AllowCredentials field's value. +func (s *AwsCorsConfiguration) SetAllowCredentials(v bool) *AwsCorsConfiguration { + s.AllowCredentials = &v return s } -// SetTLSSecurityPolicy sets the TLSSecurityPolicy field's value. -func (s *AwsElasticsearchDomainDomainEndpointOptions) SetTLSSecurityPolicy(v string) *AwsElasticsearchDomainDomainEndpointOptions { - s.TLSSecurityPolicy = &v +// SetAllowHeaders sets the AllowHeaders field's value. +func (s *AwsCorsConfiguration) SetAllowHeaders(v []*string) *AwsCorsConfiguration { + s.AllowHeaders = v return s } -// Details about the configuration for encryption at rest. -type AwsElasticsearchDomainEncryptionAtRestOptions struct { - _ struct{} `type:"structure"` - - // Whether encryption at rest is enabled. - Enabled *bool `type:"boolean"` - - // The KMS key ID. Takes the form 1a2a3a4-1a2a-3a4a-5a6a-1a2a3a4a5a6a. - KmsKeyId *string `type:"string"` -} - -// String returns the string representation -func (s AwsElasticsearchDomainEncryptionAtRestOptions) String() string { - return awsutil.Prettify(s) +// SetAllowMethods sets the AllowMethods field's value. +func (s *AwsCorsConfiguration) SetAllowMethods(v []*string) *AwsCorsConfiguration { + s.AllowMethods = v + return s } -// GoString returns the string representation -func (s AwsElasticsearchDomainEncryptionAtRestOptions) GoString() string { - return s.String() +// SetAllowOrigins sets the AllowOrigins field's value. +func (s *AwsCorsConfiguration) SetAllowOrigins(v []*string) *AwsCorsConfiguration { + s.AllowOrigins = v + return s } -// SetEnabled sets the Enabled field's value. -func (s *AwsElasticsearchDomainEncryptionAtRestOptions) SetEnabled(v bool) *AwsElasticsearchDomainEncryptionAtRestOptions { - s.Enabled = &v +// SetExposeHeaders sets the ExposeHeaders field's value. +func (s *AwsCorsConfiguration) SetExposeHeaders(v []*string) *AwsCorsConfiguration { + s.ExposeHeaders = v return s } -// SetKmsKeyId sets the KmsKeyId field's value. -func (s *AwsElasticsearchDomainEncryptionAtRestOptions) SetKmsKeyId(v string) *AwsElasticsearchDomainEncryptionAtRestOptions { - s.KmsKeyId = &v +// SetMaxAge sets the MaxAge field's value. +func (s *AwsCorsConfiguration) SetMaxAge(v int64) *AwsCorsConfiguration { + s.MaxAge = &v return s } -// Details about the configuration for node-to-node encryption. -type AwsElasticsearchDomainNodeToNodeEncryptionOptions struct { +// Contains a definition of an attribute for the table. +type AwsDynamoDbTableAttributeDefinition struct { _ struct{} `type:"structure"` - // Whether node-to-node encryption is enabled. - Enabled *bool `type:"boolean"` + // The name of the attribute. + AttributeName *string `type:"string"` + + // The type of the attribute. + AttributeType *string `type:"string"` } // String returns the string representation -func (s AwsElasticsearchDomainNodeToNodeEncryptionOptions) String() string { +func (s AwsDynamoDbTableAttributeDefinition) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsElasticsearchDomainNodeToNodeEncryptionOptions) GoString() string { +func (s AwsDynamoDbTableAttributeDefinition) GoString() string { return s.String() } -// SetEnabled sets the Enabled field's value. -func (s *AwsElasticsearchDomainNodeToNodeEncryptionOptions) SetEnabled(v bool) *AwsElasticsearchDomainNodeToNodeEncryptionOptions { - s.Enabled = &v +// SetAttributeName sets the AttributeName field's value. +func (s *AwsDynamoDbTableAttributeDefinition) SetAttributeName(v string) *AwsDynamoDbTableAttributeDefinition { + s.AttributeName = &v return s } -// Information that Amazon ES derives based on VPCOptions for the domain. -type AwsElasticsearchDomainVPCOptions struct { - _ struct{} `type:"structure"` - - // The list of Availability Zones associated with the VPC subnets. - AvailabilityZones []*string `type:"list"` +// SetAttributeType sets the AttributeType field's value. +func (s *AwsDynamoDbTableAttributeDefinition) SetAttributeType(v string) *AwsDynamoDbTableAttributeDefinition { + s.AttributeType = &v + return s +} - // The list of security group IDs associated with the VPC endpoints for the - // domain. - SecurityGroupIds []*string `type:"list"` +// Provides information about the billing for read/write capacity on the table. +type AwsDynamoDbTableBillingModeSummary struct { + _ struct{} `type:"structure"` - // A list of subnet IDs associated with the VPC endpoints for the domain. - SubnetIds []*string `type:"list"` + // The method used to charge for read and write throughput and to manage capacity. + BillingMode *string `type:"string"` - // ID for the VPC. - VPCId *string `type:"string"` + // If the billing mode is PAY_PER_REQUEST, indicates when the billing mode was + // set to that value. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + LastUpdateToPayPerRequestDateTime *string `type:"string"` } // String returns the string representation -func (s AwsElasticsearchDomainVPCOptions) String() string { +func (s AwsDynamoDbTableBillingModeSummary) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsElasticsearchDomainVPCOptions) GoString() string { +func (s AwsDynamoDbTableBillingModeSummary) GoString() string { return s.String() } -// SetAvailabilityZones sets the AvailabilityZones field's value. -func (s *AwsElasticsearchDomainVPCOptions) SetAvailabilityZones(v []*string) *AwsElasticsearchDomainVPCOptions { - s.AvailabilityZones = v - return s -} - -// SetSecurityGroupIds sets the SecurityGroupIds field's value. -func (s *AwsElasticsearchDomainVPCOptions) SetSecurityGroupIds(v []*string) *AwsElasticsearchDomainVPCOptions { - s.SecurityGroupIds = v - return s -} - -// SetSubnetIds sets the SubnetIds field's value. -func (s *AwsElasticsearchDomainVPCOptions) SetSubnetIds(v []*string) *AwsElasticsearchDomainVPCOptions { - s.SubnetIds = v +// SetBillingMode sets the BillingMode field's value. +func (s *AwsDynamoDbTableBillingModeSummary) SetBillingMode(v string) *AwsDynamoDbTableBillingModeSummary { + s.BillingMode = &v return s } -// SetVPCId sets the VPCId field's value. -func (s *AwsElasticsearchDomainVPCOptions) SetVPCId(v string) *AwsElasticsearchDomainVPCOptions { - s.VPCId = &v +// SetLastUpdateToPayPerRequestDateTime sets the LastUpdateToPayPerRequestDateTime field's value. +func (s *AwsDynamoDbTableBillingModeSummary) SetLastUpdateToPayPerRequestDateTime(v string) *AwsDynamoDbTableBillingModeSummary { + s.LastUpdateToPayPerRequestDateTime = &v return s } -// Information about a load balancer. -type AwsElbv2LoadBalancerDetails struct { +// Provides details about a DynamoDB table. +type AwsDynamoDbTableDetails struct { _ struct{} `type:"structure"` - // The Availability Zones for the load balancer. - AvailabilityZones []*AvailabilityZone `type:"list"` + // A list of attribute definitions for the table. + AttributeDefinitions []*AwsDynamoDbTableAttributeDefinition `type:"list"` - // The ID of the Amazon Route 53 hosted zone associated with the load balancer. - CanonicalHostedZoneId *string `type:"string"` + // Information about the billing for read/write capacity on the table. + BillingModeSummary *AwsDynamoDbTableBillingModeSummary `type:"structure"` - // Indicates when the load balancer was created. + // Indicates when the table was created. // // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot // contain spaces. For example, 2020-03-22T13:22:13.933Z. - CreatedTime *string `type:"string"` + CreationDateTime *string `type:"string"` - // The public DNS name of the load balancer. - DNSName *string `type:"string"` + // List of global secondary indexes for the table. + GlobalSecondaryIndexes []*AwsDynamoDbTableGlobalSecondaryIndex `type:"list"` - // The type of IP addresses used by the subnets for your load balancer. The - // possible values are ipv4 (for IPv4 addresses) and dualstack (for IPv4 and - // IPv6 addresses). - IpAddressType *string `type:"string"` + // The version of global tables being used. + GlobalTableVersion *string `type:"string"` - // The nodes of an Internet-facing load balancer have public IP addresses. - Scheme *string `type:"string"` + // The number of items in the table. + ItemCount *int64 `type:"integer"` - // The IDs of the security groups for the load balancer. - SecurityGroups []*string `type:"list"` + // The primary key structure for the table. + KeySchema []*AwsDynamoDbTableKeySchema `type:"list"` - // The state of the load balancer. - State *LoadBalancerState `type:"structure"` + // The ARN of the latest stream for the table. + LatestStreamArn *string `type:"string"` - // The type of load balancer. - Type *string `type:"string"` + // The label of the latest stream. The label is not a unique identifier. + LatestStreamLabel *string `type:"string"` - // The ID of the VPC for the load balancer. - VpcId *string `type:"string"` + // The list of local secondary indexes for the table. + LocalSecondaryIndexes []*AwsDynamoDbTableLocalSecondaryIndex `type:"list"` + + // Information about the provisioned throughput for the table. + ProvisionedThroughput *AwsDynamoDbTableProvisionedThroughput `type:"structure"` + + // The list of replicas of this table. + Replicas []*AwsDynamoDbTableReplica `type:"list"` + + // Information about the restore for the table. + RestoreSummary *AwsDynamoDbTableRestoreSummary `type:"structure"` + + // Information about the server-side encryption for the table. + SseDescription *AwsDynamoDbTableSseDescription `type:"structure"` + + // The current DynamoDB Streams configuration for the table. + StreamSpecification *AwsDynamoDbTableStreamSpecification `type:"structure"` + + // The identifier of the table. + TableId *string `type:"string"` + + // The name of the table. + TableName *string `type:"string"` + + // The total size of the table in bytes. + TableSizeBytes *int64 `type:"long"` + + // The current status of the table. + TableStatus *string `type:"string"` } // String returns the string representation -func (s AwsElbv2LoadBalancerDetails) String() string { +func (s AwsDynamoDbTableDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsElbv2LoadBalancerDetails) GoString() string { +func (s AwsDynamoDbTableDetails) GoString() string { return s.String() } -// SetAvailabilityZones sets the AvailabilityZones field's value. -func (s *AwsElbv2LoadBalancerDetails) SetAvailabilityZones(v []*AvailabilityZone) *AwsElbv2LoadBalancerDetails { - s.AvailabilityZones = v +// SetAttributeDefinitions sets the AttributeDefinitions field's value. +func (s *AwsDynamoDbTableDetails) SetAttributeDefinitions(v []*AwsDynamoDbTableAttributeDefinition) *AwsDynamoDbTableDetails { + s.AttributeDefinitions = v return s } -// SetCanonicalHostedZoneId sets the CanonicalHostedZoneId field's value. -func (s *AwsElbv2LoadBalancerDetails) SetCanonicalHostedZoneId(v string) *AwsElbv2LoadBalancerDetails { - s.CanonicalHostedZoneId = &v +// SetBillingModeSummary sets the BillingModeSummary field's value. +func (s *AwsDynamoDbTableDetails) SetBillingModeSummary(v *AwsDynamoDbTableBillingModeSummary) *AwsDynamoDbTableDetails { + s.BillingModeSummary = v return s } -// SetCreatedTime sets the CreatedTime field's value. -func (s *AwsElbv2LoadBalancerDetails) SetCreatedTime(v string) *AwsElbv2LoadBalancerDetails { - s.CreatedTime = &v +// SetCreationDateTime sets the CreationDateTime field's value. +func (s *AwsDynamoDbTableDetails) SetCreationDateTime(v string) *AwsDynamoDbTableDetails { + s.CreationDateTime = &v return s } -// SetDNSName sets the DNSName field's value. -func (s *AwsElbv2LoadBalancerDetails) SetDNSName(v string) *AwsElbv2LoadBalancerDetails { - s.DNSName = &v +// SetGlobalSecondaryIndexes sets the GlobalSecondaryIndexes field's value. +func (s *AwsDynamoDbTableDetails) SetGlobalSecondaryIndexes(v []*AwsDynamoDbTableGlobalSecondaryIndex) *AwsDynamoDbTableDetails { + s.GlobalSecondaryIndexes = v return s } -// SetIpAddressType sets the IpAddressType field's value. -func (s *AwsElbv2LoadBalancerDetails) SetIpAddressType(v string) *AwsElbv2LoadBalancerDetails { - s.IpAddressType = &v +// SetGlobalTableVersion sets the GlobalTableVersion field's value. +func (s *AwsDynamoDbTableDetails) SetGlobalTableVersion(v string) *AwsDynamoDbTableDetails { + s.GlobalTableVersion = &v return s } -// SetScheme sets the Scheme field's value. -func (s *AwsElbv2LoadBalancerDetails) SetScheme(v string) *AwsElbv2LoadBalancerDetails { - s.Scheme = &v +// SetItemCount sets the ItemCount field's value. +func (s *AwsDynamoDbTableDetails) SetItemCount(v int64) *AwsDynamoDbTableDetails { + s.ItemCount = &v return s } -// SetSecurityGroups sets the SecurityGroups field's value. -func (s *AwsElbv2LoadBalancerDetails) SetSecurityGroups(v []*string) *AwsElbv2LoadBalancerDetails { - s.SecurityGroups = v +// SetKeySchema sets the KeySchema field's value. +func (s *AwsDynamoDbTableDetails) SetKeySchema(v []*AwsDynamoDbTableKeySchema) *AwsDynamoDbTableDetails { + s.KeySchema = v return s } -// SetState sets the State field's value. -func (s *AwsElbv2LoadBalancerDetails) SetState(v *LoadBalancerState) *AwsElbv2LoadBalancerDetails { - s.State = v +// SetLatestStreamArn sets the LatestStreamArn field's value. +func (s *AwsDynamoDbTableDetails) SetLatestStreamArn(v string) *AwsDynamoDbTableDetails { + s.LatestStreamArn = &v return s } -// SetType sets the Type field's value. -func (s *AwsElbv2LoadBalancerDetails) SetType(v string) *AwsElbv2LoadBalancerDetails { - s.Type = &v +// SetLatestStreamLabel sets the LatestStreamLabel field's value. +func (s *AwsDynamoDbTableDetails) SetLatestStreamLabel(v string) *AwsDynamoDbTableDetails { + s.LatestStreamLabel = &v return s } -// SetVpcId sets the VpcId field's value. -func (s *AwsElbv2LoadBalancerDetails) SetVpcId(v string) *AwsElbv2LoadBalancerDetails { - s.VpcId = &v +// SetLocalSecondaryIndexes sets the LocalSecondaryIndexes field's value. +func (s *AwsDynamoDbTableDetails) SetLocalSecondaryIndexes(v []*AwsDynamoDbTableLocalSecondaryIndex) *AwsDynamoDbTableDetails { + s.LocalSecondaryIndexes = v return s } -// IAM access key details related to a finding. -type AwsIamAccessKeyDetails struct { - _ struct{} `type:"structure"` - - // Indicates when the IAM access key was created. - // - // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time - // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot - // contain spaces. For example, 2020-03-22T13:22:13.933Z. - CreatedAt *string `type:"string"` - - // The ID of the principal associated with an access key. - PrincipalId *string `type:"string"` - - // The name of the principal. - PrincipalName *string `type:"string"` - - // The type of principal associated with an access key. - PrincipalType *string `type:"string"` - - // The status of the IAM access key related to a finding. - Status *string `type:"string" enum:"AwsIamAccessKeyStatus"` - - // The user associated with the IAM access key related to a finding. - // - // The UserName parameter has been replaced with the PrincipalName parameter - // because access keys can also be assigned to principals that are not IAM users. - // - // Deprecated: This field is deprecated, use PrincipalName instead. - UserName *string `deprecated:"true" type:"string"` +// SetProvisionedThroughput sets the ProvisionedThroughput field's value. +func (s *AwsDynamoDbTableDetails) SetProvisionedThroughput(v *AwsDynamoDbTableProvisionedThroughput) *AwsDynamoDbTableDetails { + s.ProvisionedThroughput = v + return s } -// String returns the string representation -func (s AwsIamAccessKeyDetails) String() string { - return awsutil.Prettify(s) +// SetReplicas sets the Replicas field's value. +func (s *AwsDynamoDbTableDetails) SetReplicas(v []*AwsDynamoDbTableReplica) *AwsDynamoDbTableDetails { + s.Replicas = v + return s } -// GoString returns the string representation -func (s AwsIamAccessKeyDetails) GoString() string { - return s.String() +// SetRestoreSummary sets the RestoreSummary field's value. +func (s *AwsDynamoDbTableDetails) SetRestoreSummary(v *AwsDynamoDbTableRestoreSummary) *AwsDynamoDbTableDetails { + s.RestoreSummary = v + return s } -// SetCreatedAt sets the CreatedAt field's value. -func (s *AwsIamAccessKeyDetails) SetCreatedAt(v string) *AwsIamAccessKeyDetails { - s.CreatedAt = &v +// SetSseDescription sets the SseDescription field's value. +func (s *AwsDynamoDbTableDetails) SetSseDescription(v *AwsDynamoDbTableSseDescription) *AwsDynamoDbTableDetails { + s.SseDescription = v return s } -// SetPrincipalId sets the PrincipalId field's value. -func (s *AwsIamAccessKeyDetails) SetPrincipalId(v string) *AwsIamAccessKeyDetails { - s.PrincipalId = &v +// SetStreamSpecification sets the StreamSpecification field's value. +func (s *AwsDynamoDbTableDetails) SetStreamSpecification(v *AwsDynamoDbTableStreamSpecification) *AwsDynamoDbTableDetails { + s.StreamSpecification = v return s } -// SetPrincipalName sets the PrincipalName field's value. -func (s *AwsIamAccessKeyDetails) SetPrincipalName(v string) *AwsIamAccessKeyDetails { - s.PrincipalName = &v +// SetTableId sets the TableId field's value. +func (s *AwsDynamoDbTableDetails) SetTableId(v string) *AwsDynamoDbTableDetails { + s.TableId = &v return s } -// SetPrincipalType sets the PrincipalType field's value. -func (s *AwsIamAccessKeyDetails) SetPrincipalType(v string) *AwsIamAccessKeyDetails { - s.PrincipalType = &v +// SetTableName sets the TableName field's value. +func (s *AwsDynamoDbTableDetails) SetTableName(v string) *AwsDynamoDbTableDetails { + s.TableName = &v return s } -// SetStatus sets the Status field's value. -func (s *AwsIamAccessKeyDetails) SetStatus(v string) *AwsIamAccessKeyDetails { - s.Status = &v +// SetTableSizeBytes sets the TableSizeBytes field's value. +func (s *AwsDynamoDbTableDetails) SetTableSizeBytes(v int64) *AwsDynamoDbTableDetails { + s.TableSizeBytes = &v return s } -// SetUserName sets the UserName field's value. -func (s *AwsIamAccessKeyDetails) SetUserName(v string) *AwsIamAccessKeyDetails { - s.UserName = &v +// SetTableStatus sets the TableStatus field's value. +func (s *AwsDynamoDbTableDetails) SetTableStatus(v string) *AwsDynamoDbTableDetails { + s.TableStatus = &v return s } -// A managed policy that is attached to an IAM user. -type AwsIamAttachedManagedPolicy struct { +// Information abut a global secondary index for the table. +type AwsDynamoDbTableGlobalSecondaryIndex struct { _ struct{} `type:"structure"` - // The ARN of the policy. - PolicyArn *string `type:"string"` + // Whether the index is currently backfilling. + Backfilling *bool `type:"boolean"` - // The name of the policy. - PolicyName *string `type:"string"` + // The ARN of the index. + IndexArn *string `type:"string"` + + // The name of the index. + IndexName *string `type:"string"` + + // The total size in bytes of the index. + IndexSizeBytes *int64 `type:"long"` + + // The current status of the index. + IndexStatus *string `type:"string"` + + // The number of items in the index. + ItemCount *int64 `type:"integer"` + + // The key schema for the index. + KeySchema []*AwsDynamoDbTableKeySchema `type:"list"` + + // Attributes that are copied from the table into an index. + Projection *AwsDynamoDbTableProjection `type:"structure"` + + // Information about the provisioned throughput settings for the indexes. + ProvisionedThroughput *AwsDynamoDbTableProvisionedThroughput `type:"structure"` } // String returns the string representation -func (s AwsIamAttachedManagedPolicy) String() string { +func (s AwsDynamoDbTableGlobalSecondaryIndex) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsIamAttachedManagedPolicy) GoString() string { +func (s AwsDynamoDbTableGlobalSecondaryIndex) GoString() string { return s.String() } -// SetPolicyArn sets the PolicyArn field's value. -func (s *AwsIamAttachedManagedPolicy) SetPolicyArn(v string) *AwsIamAttachedManagedPolicy { - s.PolicyArn = &v +// SetBackfilling sets the Backfilling field's value. +func (s *AwsDynamoDbTableGlobalSecondaryIndex) SetBackfilling(v bool) *AwsDynamoDbTableGlobalSecondaryIndex { + s.Backfilling = &v return s } -// SetPolicyName sets the PolicyName field's value. -func (s *AwsIamAttachedManagedPolicy) SetPolicyName(v string) *AwsIamAttachedManagedPolicy { - s.PolicyName = &v +// SetIndexArn sets the IndexArn field's value. +func (s *AwsDynamoDbTableGlobalSecondaryIndex) SetIndexArn(v string) *AwsDynamoDbTableGlobalSecondaryIndex { + s.IndexArn = &v return s } -// Information about the policy used to set the permissions boundary for an -// IAM user. -type AwsIamPermissionsBoundary struct { - _ struct{} `type:"structure"` +// SetIndexName sets the IndexName field's value. +func (s *AwsDynamoDbTableGlobalSecondaryIndex) SetIndexName(v string) *AwsDynamoDbTableGlobalSecondaryIndex { + s.IndexName = &v + return s +} - // The ARN of the policy used to set the permissions boundary for the user. - PermissionsBoundaryArn *string `type:"string"` +// SetIndexSizeBytes sets the IndexSizeBytes field's value. +func (s *AwsDynamoDbTableGlobalSecondaryIndex) SetIndexSizeBytes(v int64) *AwsDynamoDbTableGlobalSecondaryIndex { + s.IndexSizeBytes = &v + return s +} - // The usage type for the permissions boundary. - PermissionsBoundaryType *string `type:"string"` +// SetIndexStatus sets the IndexStatus field's value. +func (s *AwsDynamoDbTableGlobalSecondaryIndex) SetIndexStatus(v string) *AwsDynamoDbTableGlobalSecondaryIndex { + s.IndexStatus = &v + return s } -// String returns the string representation -func (s AwsIamPermissionsBoundary) String() string { - return awsutil.Prettify(s) +// SetItemCount sets the ItemCount field's value. +func (s *AwsDynamoDbTableGlobalSecondaryIndex) SetItemCount(v int64) *AwsDynamoDbTableGlobalSecondaryIndex { + s.ItemCount = &v + return s } -// GoString returns the string representation -func (s AwsIamPermissionsBoundary) GoString() string { - return s.String() +// SetKeySchema sets the KeySchema field's value. +func (s *AwsDynamoDbTableGlobalSecondaryIndex) SetKeySchema(v []*AwsDynamoDbTableKeySchema) *AwsDynamoDbTableGlobalSecondaryIndex { + s.KeySchema = v + return s } -// SetPermissionsBoundaryArn sets the PermissionsBoundaryArn field's value. -func (s *AwsIamPermissionsBoundary) SetPermissionsBoundaryArn(v string) *AwsIamPermissionsBoundary { - s.PermissionsBoundaryArn = &v +// SetProjection sets the Projection field's value. +func (s *AwsDynamoDbTableGlobalSecondaryIndex) SetProjection(v *AwsDynamoDbTableProjection) *AwsDynamoDbTableGlobalSecondaryIndex { + s.Projection = v return s } -// SetPermissionsBoundaryType sets the PermissionsBoundaryType field's value. -func (s *AwsIamPermissionsBoundary) SetPermissionsBoundaryType(v string) *AwsIamPermissionsBoundary { - s.PermissionsBoundaryType = &v +// SetProvisionedThroughput sets the ProvisionedThroughput field's value. +func (s *AwsDynamoDbTableGlobalSecondaryIndex) SetProvisionedThroughput(v *AwsDynamoDbTableProvisionedThroughput) *AwsDynamoDbTableGlobalSecondaryIndex { + s.ProvisionedThroughput = v return s } -// Represents an IAM permissions policy. -type AwsIamPolicyDetails struct { +// A component of the key schema for the DynamoDB table, a global secondary +// index, or a local secondary index. +type AwsDynamoDbTableKeySchema struct { _ struct{} `type:"structure"` - // The number of users, groups, and roles that the policy is attached to. - AttachmentCount *int64 `type:"integer"` + // The name of the key schema attribute. + AttributeName *string `type:"string"` - // When the policy was created. - // - // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time - // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot - // contain spaces. For example, 2020-03-22T13:22:13.933Z. - CreateDate *string `type:"string"` + // The type of key used for the key schema attribute. + KeyType *string `type:"string"` +} - // The identifier of the default version of the policy. - DefaultVersionId *string `type:"string"` +// String returns the string representation +func (s AwsDynamoDbTableKeySchema) String() string { + return awsutil.Prettify(s) +} - // A description of the policy. - Description *string `type:"string"` +// GoString returns the string representation +func (s AwsDynamoDbTableKeySchema) GoString() string { + return s.String() +} - // Whether the policy can be attached to a user, group, or role. - IsAttachable *bool `type:"boolean"` +// SetAttributeName sets the AttributeName field's value. +func (s *AwsDynamoDbTableKeySchema) SetAttributeName(v string) *AwsDynamoDbTableKeySchema { + s.AttributeName = &v + return s +} - // The path to the policy. - Path *string `type:"string"` +// SetKeyType sets the KeyType field's value. +func (s *AwsDynamoDbTableKeySchema) SetKeyType(v string) *AwsDynamoDbTableKeySchema { + s.KeyType = &v + return s +} - // The number of users and roles that use the policy to set the permissions - // boundary. - PermissionsBoundaryUsageCount *int64 `type:"integer"` +// Information about a local secondary index for a DynamoDB table. +type AwsDynamoDbTableLocalSecondaryIndex struct { + _ struct{} `type:"structure"` - // The unique identifier of the policy. - PolicyId *string `type:"string"` + // The ARN of the index. + IndexArn *string `type:"string"` - // The name of the policy. - PolicyName *string `type:"string"` + // The name of the index. + IndexName *string `type:"string"` - // List of versions of the policy. - PolicyVersionList []*AwsIamPolicyVersion `type:"list"` + // The complete key schema for the index. + KeySchema []*AwsDynamoDbTableKeySchema `type:"list"` - // When the policy was most recently updated. - // - // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time - // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot - // contain spaces. For example, 2020-03-22T13:22:13.933Z. - UpdateDate *string `type:"string"` + // Attributes that are copied from the table into the index. These are in addition + // to the primary key attributes and index key attributes, which are automatically + // projected. + Projection *AwsDynamoDbTableProjection `type:"structure"` } // String returns the string representation -func (s AwsIamPolicyDetails) String() string { +func (s AwsDynamoDbTableLocalSecondaryIndex) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsIamPolicyDetails) GoString() string { +func (s AwsDynamoDbTableLocalSecondaryIndex) GoString() string { return s.String() } -// SetAttachmentCount sets the AttachmentCount field's value. -func (s *AwsIamPolicyDetails) SetAttachmentCount(v int64) *AwsIamPolicyDetails { - s.AttachmentCount = &v +// SetIndexArn sets the IndexArn field's value. +func (s *AwsDynamoDbTableLocalSecondaryIndex) SetIndexArn(v string) *AwsDynamoDbTableLocalSecondaryIndex { + s.IndexArn = &v return s } -// SetCreateDate sets the CreateDate field's value. -func (s *AwsIamPolicyDetails) SetCreateDate(v string) *AwsIamPolicyDetails { - s.CreateDate = &v +// SetIndexName sets the IndexName field's value. +func (s *AwsDynamoDbTableLocalSecondaryIndex) SetIndexName(v string) *AwsDynamoDbTableLocalSecondaryIndex { + s.IndexName = &v return s } -// SetDefaultVersionId sets the DefaultVersionId field's value. -func (s *AwsIamPolicyDetails) SetDefaultVersionId(v string) *AwsIamPolicyDetails { - s.DefaultVersionId = &v +// SetKeySchema sets the KeySchema field's value. +func (s *AwsDynamoDbTableLocalSecondaryIndex) SetKeySchema(v []*AwsDynamoDbTableKeySchema) *AwsDynamoDbTableLocalSecondaryIndex { + s.KeySchema = v return s } -// SetDescription sets the Description field's value. -func (s *AwsIamPolicyDetails) SetDescription(v string) *AwsIamPolicyDetails { - s.Description = &v +// SetProjection sets the Projection field's value. +func (s *AwsDynamoDbTableLocalSecondaryIndex) SetProjection(v *AwsDynamoDbTableProjection) *AwsDynamoDbTableLocalSecondaryIndex { + s.Projection = v return s } -// SetIsAttachable sets the IsAttachable field's value. -func (s *AwsIamPolicyDetails) SetIsAttachable(v bool) *AwsIamPolicyDetails { - s.IsAttachable = &v - return s -} +// For global and local secondary indexes, identifies the attributes that are +// copied from the table into the index. +type AwsDynamoDbTableProjection struct { + _ struct{} `type:"structure"` -// SetPath sets the Path field's value. -func (s *AwsIamPolicyDetails) SetPath(v string) *AwsIamPolicyDetails { - s.Path = &v - return s -} + // The nonkey attributes that are projected into the index. For each attribute, + // provide the attribute name. + NonKeyAttributes []*string `type:"list"` -// SetPermissionsBoundaryUsageCount sets the PermissionsBoundaryUsageCount field's value. -func (s *AwsIamPolicyDetails) SetPermissionsBoundaryUsageCount(v int64) *AwsIamPolicyDetails { - s.PermissionsBoundaryUsageCount = &v - return s + // The types of attributes that are projected into the index. + ProjectionType *string `type:"string"` } -// SetPolicyId sets the PolicyId field's value. -func (s *AwsIamPolicyDetails) SetPolicyId(v string) *AwsIamPolicyDetails { - s.PolicyId = &v - return s +// String returns the string representation +func (s AwsDynamoDbTableProjection) String() string { + return awsutil.Prettify(s) } -// SetPolicyName sets the PolicyName field's value. -func (s *AwsIamPolicyDetails) SetPolicyName(v string) *AwsIamPolicyDetails { - s.PolicyName = &v - return s +// GoString returns the string representation +func (s AwsDynamoDbTableProjection) GoString() string { + return s.String() } -// SetPolicyVersionList sets the PolicyVersionList field's value. -func (s *AwsIamPolicyDetails) SetPolicyVersionList(v []*AwsIamPolicyVersion) *AwsIamPolicyDetails { - s.PolicyVersionList = v +// SetNonKeyAttributes sets the NonKeyAttributes field's value. +func (s *AwsDynamoDbTableProjection) SetNonKeyAttributes(v []*string) *AwsDynamoDbTableProjection { + s.NonKeyAttributes = v return s } -// SetUpdateDate sets the UpdateDate field's value. -func (s *AwsIamPolicyDetails) SetUpdateDate(v string) *AwsIamPolicyDetails { - s.UpdateDate = &v +// SetProjectionType sets the ProjectionType field's value. +func (s *AwsDynamoDbTableProjection) SetProjectionType(v string) *AwsDynamoDbTableProjection { + s.ProjectionType = &v return s } -// A version of an IAM policy. -type AwsIamPolicyVersion struct { +// Information about the provisioned throughput for the table or for a global +// secondary index. +type AwsDynamoDbTableProvisionedThroughput struct { _ struct{} `type:"structure"` - // Indicates when the version was created. + // Indicates when the provisioned throughput was last decreased. // // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot // contain spaces. For example, 2020-03-22T13:22:13.933Z. - CreateDate *string `type:"string"` + LastDecreaseDateTime *string `type:"string"` - // Whether the version is the default version. - IsDefaultVersion *bool `type:"boolean"` + // Indicates when the provisioned throughput was last increased. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + LastIncreaseDateTime *string `type:"string"` - // The identifier of the policy version. - VersionId *string `type:"string"` + // The number of times during the current UTC calendar day that the provisioned + // throughput was decreased. + NumberOfDecreasesToday *int64 `type:"integer"` + + // The maximum number of strongly consistent reads consumed per second before + // DynamoDB returns a ThrottlingException. + ReadCapacityUnits *int64 `type:"integer"` + + // The maximum number of writes consumed per second before DynamoDB returns + // a ThrottlingException. + WriteCapacityUnits *int64 `type:"integer"` } // String returns the string representation -func (s AwsIamPolicyVersion) String() string { +func (s AwsDynamoDbTableProvisionedThroughput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsIamPolicyVersion) GoString() string { +func (s AwsDynamoDbTableProvisionedThroughput) GoString() string { return s.String() } -// SetCreateDate sets the CreateDate field's value. -func (s *AwsIamPolicyVersion) SetCreateDate(v string) *AwsIamPolicyVersion { - s.CreateDate = &v +// SetLastDecreaseDateTime sets the LastDecreaseDateTime field's value. +func (s *AwsDynamoDbTableProvisionedThroughput) SetLastDecreaseDateTime(v string) *AwsDynamoDbTableProvisionedThroughput { + s.LastDecreaseDateTime = &v return s } -// SetIsDefaultVersion sets the IsDefaultVersion field's value. -func (s *AwsIamPolicyVersion) SetIsDefaultVersion(v bool) *AwsIamPolicyVersion { - s.IsDefaultVersion = &v +// SetLastIncreaseDateTime sets the LastIncreaseDateTime field's value. +func (s *AwsDynamoDbTableProvisionedThroughput) SetLastIncreaseDateTime(v string) *AwsDynamoDbTableProvisionedThroughput { + s.LastIncreaseDateTime = &v return s } -// SetVersionId sets the VersionId field's value. -func (s *AwsIamPolicyVersion) SetVersionId(v string) *AwsIamPolicyVersion { - s.VersionId = &v +// SetNumberOfDecreasesToday sets the NumberOfDecreasesToday field's value. +func (s *AwsDynamoDbTableProvisionedThroughput) SetNumberOfDecreasesToday(v int64) *AwsDynamoDbTableProvisionedThroughput { + s.NumberOfDecreasesToday = &v return s } -// Contains information about an IAM role, including all of the role's policies. -type AwsIamRoleDetails struct { - _ struct{} `type:"structure"` +// SetReadCapacityUnits sets the ReadCapacityUnits field's value. +func (s *AwsDynamoDbTableProvisionedThroughput) SetReadCapacityUnits(v int64) *AwsDynamoDbTableProvisionedThroughput { + s.ReadCapacityUnits = &v + return s +} - // The trust policy that grants permission to assume the role. - AssumeRolePolicyDocument *string `min:"1" type:"string"` - - // Indicates when the role was created. - // - // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time - // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot - // contain spaces. For example, 2020-03-22T13:22:13.933Z. - CreateDate *string `type:"string"` - - // The maximum session duration (in seconds) that you want to set for the specified - // role. - MaxSessionDuration *int64 `type:"integer"` - - // The path to the role. - Path *string `type:"string"` +// SetWriteCapacityUnits sets the WriteCapacityUnits field's value. +func (s *AwsDynamoDbTableProvisionedThroughput) SetWriteCapacityUnits(v int64) *AwsDynamoDbTableProvisionedThroughput { + s.WriteCapacityUnits = &v + return s +} - // The stable and unique string identifying the role. - RoleId *string `type:"string"` +// Replica-specific configuration for the provisioned throughput. +type AwsDynamoDbTableProvisionedThroughputOverride struct { + _ struct{} `type:"structure"` - // The friendly name that identifies the role. - RoleName *string `type:"string"` + // The read capacity units for the replica. + ReadCapacityUnits *int64 `type:"integer"` } // String returns the string representation -func (s AwsIamRoleDetails) String() string { +func (s AwsDynamoDbTableProvisionedThroughputOverride) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsIamRoleDetails) GoString() string { +func (s AwsDynamoDbTableProvisionedThroughputOverride) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *AwsIamRoleDetails) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "AwsIamRoleDetails"} - if s.AssumeRolePolicyDocument != nil && len(*s.AssumeRolePolicyDocument) < 1 { - invalidParams.Add(request.NewErrParamMinLen("AssumeRolePolicyDocument", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetAssumeRolePolicyDocument sets the AssumeRolePolicyDocument field's value. -func (s *AwsIamRoleDetails) SetAssumeRolePolicyDocument(v string) *AwsIamRoleDetails { - s.AssumeRolePolicyDocument = &v - return s -} - -// SetCreateDate sets the CreateDate field's value. -func (s *AwsIamRoleDetails) SetCreateDate(v string) *AwsIamRoleDetails { - s.CreateDate = &v - return s -} - -// SetMaxSessionDuration sets the MaxSessionDuration field's value. -func (s *AwsIamRoleDetails) SetMaxSessionDuration(v int64) *AwsIamRoleDetails { - s.MaxSessionDuration = &v - return s -} - -// SetPath sets the Path field's value. -func (s *AwsIamRoleDetails) SetPath(v string) *AwsIamRoleDetails { - s.Path = &v - return s -} - -// SetRoleId sets the RoleId field's value. -func (s *AwsIamRoleDetails) SetRoleId(v string) *AwsIamRoleDetails { - s.RoleId = &v - return s -} - -// SetRoleName sets the RoleName field's value. -func (s *AwsIamRoleDetails) SetRoleName(v string) *AwsIamRoleDetails { - s.RoleName = &v +// SetReadCapacityUnits sets the ReadCapacityUnits field's value. +func (s *AwsDynamoDbTableProvisionedThroughputOverride) SetReadCapacityUnits(v int64) *AwsDynamoDbTableProvisionedThroughputOverride { + s.ReadCapacityUnits = &v return s } -// Information about an IAM user. -type AwsIamUserDetails struct { +// Information about a replica of a DynamoDB table. +type AwsDynamoDbTableReplica struct { _ struct{} `type:"structure"` - // A list of the managed policies that are attached to the user. - AttachedManagedPolicies []*AwsIamAttachedManagedPolicy `type:"list"` - - // Indicates when the user was created. - // - // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time - // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot - // contain spaces. For example, 2020-03-22T13:22:13.933Z. - CreateDate *string `type:"string"` - - // A list of IAM groups that the user belongs to. - GroupList []*string `type:"list"` + // List of global secondary indexes for the replica. + GlobalSecondaryIndexes []*AwsDynamoDbTableReplicaGlobalSecondaryIndex `type:"list"` - // The path to the user. - Path *string `type:"string"` + // The identifier of the AWS KMS customer master key (CMK) that will be used + // for AWS KMS encryption for the replica. + KmsMasterKeyId *string `type:"string"` - // The permissions boundary for the user. - PermissionsBoundary *AwsIamPermissionsBoundary `type:"structure"` + // Replica-specific configuration for the provisioned throughput. + ProvisionedThroughputOverride *AwsDynamoDbTableProvisionedThroughputOverride `type:"structure"` - // The unique identifier for the user. - UserId *string `type:"string"` + // The name of the Region where the replica is located. + RegionName *string `type:"string"` - // The name of the user. - UserName *string `type:"string"` + // The current status of the replica. + ReplicaStatus *string `type:"string"` - // The list of inline policies that are embedded in the user. - UserPolicyList []*AwsIamUserPolicy `type:"list"` + // Detailed information about the replica status. + ReplicaStatusDescription *string `type:"string"` } // String returns the string representation -func (s AwsIamUserDetails) String() string { +func (s AwsDynamoDbTableReplica) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsIamUserDetails) GoString() string { +func (s AwsDynamoDbTableReplica) GoString() string { return s.String() } -// SetAttachedManagedPolicies sets the AttachedManagedPolicies field's value. -func (s *AwsIamUserDetails) SetAttachedManagedPolicies(v []*AwsIamAttachedManagedPolicy) *AwsIamUserDetails { - s.AttachedManagedPolicies = v - return s -} - -// SetCreateDate sets the CreateDate field's value. -func (s *AwsIamUserDetails) SetCreateDate(v string) *AwsIamUserDetails { - s.CreateDate = &v - return s -} - -// SetGroupList sets the GroupList field's value. -func (s *AwsIamUserDetails) SetGroupList(v []*string) *AwsIamUserDetails { - s.GroupList = v +// SetGlobalSecondaryIndexes sets the GlobalSecondaryIndexes field's value. +func (s *AwsDynamoDbTableReplica) SetGlobalSecondaryIndexes(v []*AwsDynamoDbTableReplicaGlobalSecondaryIndex) *AwsDynamoDbTableReplica { + s.GlobalSecondaryIndexes = v return s } -// SetPath sets the Path field's value. -func (s *AwsIamUserDetails) SetPath(v string) *AwsIamUserDetails { - s.Path = &v +// SetKmsMasterKeyId sets the KmsMasterKeyId field's value. +func (s *AwsDynamoDbTableReplica) SetKmsMasterKeyId(v string) *AwsDynamoDbTableReplica { + s.KmsMasterKeyId = &v return s } -// SetPermissionsBoundary sets the PermissionsBoundary field's value. -func (s *AwsIamUserDetails) SetPermissionsBoundary(v *AwsIamPermissionsBoundary) *AwsIamUserDetails { - s.PermissionsBoundary = v +// SetProvisionedThroughputOverride sets the ProvisionedThroughputOverride field's value. +func (s *AwsDynamoDbTableReplica) SetProvisionedThroughputOverride(v *AwsDynamoDbTableProvisionedThroughputOverride) *AwsDynamoDbTableReplica { + s.ProvisionedThroughputOverride = v return s } -// SetUserId sets the UserId field's value. -func (s *AwsIamUserDetails) SetUserId(v string) *AwsIamUserDetails { - s.UserId = &v +// SetRegionName sets the RegionName field's value. +func (s *AwsDynamoDbTableReplica) SetRegionName(v string) *AwsDynamoDbTableReplica { + s.RegionName = &v return s } -// SetUserName sets the UserName field's value. -func (s *AwsIamUserDetails) SetUserName(v string) *AwsIamUserDetails { - s.UserName = &v +// SetReplicaStatus sets the ReplicaStatus field's value. +func (s *AwsDynamoDbTableReplica) SetReplicaStatus(v string) *AwsDynamoDbTableReplica { + s.ReplicaStatus = &v return s } -// SetUserPolicyList sets the UserPolicyList field's value. -func (s *AwsIamUserDetails) SetUserPolicyList(v []*AwsIamUserPolicy) *AwsIamUserDetails { - s.UserPolicyList = v +// SetReplicaStatusDescription sets the ReplicaStatusDescription field's value. +func (s *AwsDynamoDbTableReplica) SetReplicaStatusDescription(v string) *AwsDynamoDbTableReplica { + s.ReplicaStatusDescription = &v return s } -// Information about an inline policy that is embedded in the user. -type AwsIamUserPolicy struct { +// Information about a global secondary index for a DynamoDB table replica. +type AwsDynamoDbTableReplicaGlobalSecondaryIndex struct { _ struct{} `type:"structure"` - // The name of the policy. - PolicyName *string `type:"string"` + // The name of the index. + IndexName *string `type:"string"` + + // Replica-specific configuration for the provisioned throughput for the index. + ProvisionedThroughputOverride *AwsDynamoDbTableProvisionedThroughputOverride `type:"structure"` } // String returns the string representation -func (s AwsIamUserPolicy) String() string { +func (s AwsDynamoDbTableReplicaGlobalSecondaryIndex) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsIamUserPolicy) GoString() string { +func (s AwsDynamoDbTableReplicaGlobalSecondaryIndex) GoString() string { return s.String() } -// SetPolicyName sets the PolicyName field's value. -func (s *AwsIamUserPolicy) SetPolicyName(v string) *AwsIamUserPolicy { - s.PolicyName = &v +// SetIndexName sets the IndexName field's value. +func (s *AwsDynamoDbTableReplicaGlobalSecondaryIndex) SetIndexName(v string) *AwsDynamoDbTableReplicaGlobalSecondaryIndex { + s.IndexName = &v return s } -// Contains metadata about a customer master key (CMK). -type AwsKmsKeyDetails struct { - _ struct{} `type:"structure"` +// SetProvisionedThroughputOverride sets the ProvisionedThroughputOverride field's value. +func (s *AwsDynamoDbTableReplicaGlobalSecondaryIndex) SetProvisionedThroughputOverride(v *AwsDynamoDbTableProvisionedThroughputOverride) *AwsDynamoDbTableReplicaGlobalSecondaryIndex { + s.ProvisionedThroughputOverride = v + return s +} - // The twelve-digit account ID of the AWS account that owns the CMK. - AWSAccountId *string `type:"string"` +// Information about the restore for the table. +type AwsDynamoDbTableRestoreSummary struct { + _ struct{} `type:"structure"` - // Indicates when the CMK was created. + // Indicates the point in time that the table was restored to. // // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot // contain spaces. For example, 2020-03-22T13:22:13.933Z. - CreationDate *float64 `type:"double"` - - // A description of the key. - Description *string `type:"string"` - - // The globally unique identifier for the CMK. - KeyId *string `type:"string"` + RestoreDateTime *string `type:"string"` - // The manager of the CMK. CMKs in your AWS account are either customer managed - // or AWS managed. - KeyManager *string `type:"string"` + // Whether a restore is currently in progress. + RestoreInProgress *bool `type:"boolean"` - // The state of the CMK. - KeyState *string `type:"string"` + // The ARN of the source backup from which the table was restored. + SourceBackupArn *string `type:"string"` - // The source of the CMK's key material. - // - // When this value is AWS_KMS, AWS KMS created the key material. - // - // When this value is EXTERNAL, the key material was imported from your existing - // key management infrastructure or the CMK lacks key material. - // - // When this value is AWS_CLOUDHSM, the key material was created in the AWS - // CloudHSM cluster associated with a custom key store. - Origin *string `type:"string"` + // The ARN of the source table for the backup. + SourceTableArn *string `type:"string"` } // String returns the string representation -func (s AwsKmsKeyDetails) String() string { +func (s AwsDynamoDbTableRestoreSummary) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsKmsKeyDetails) GoString() string { +func (s AwsDynamoDbTableRestoreSummary) GoString() string { return s.String() } -// SetAWSAccountId sets the AWSAccountId field's value. -func (s *AwsKmsKeyDetails) SetAWSAccountId(v string) *AwsKmsKeyDetails { - s.AWSAccountId = &v +// SetRestoreDateTime sets the RestoreDateTime field's value. +func (s *AwsDynamoDbTableRestoreSummary) SetRestoreDateTime(v string) *AwsDynamoDbTableRestoreSummary { + s.RestoreDateTime = &v return s } -// SetCreationDate sets the CreationDate field's value. -func (s *AwsKmsKeyDetails) SetCreationDate(v float64) *AwsKmsKeyDetails { - s.CreationDate = &v +// SetRestoreInProgress sets the RestoreInProgress field's value. +func (s *AwsDynamoDbTableRestoreSummary) SetRestoreInProgress(v bool) *AwsDynamoDbTableRestoreSummary { + s.RestoreInProgress = &v return s } -// SetDescription sets the Description field's value. -func (s *AwsKmsKeyDetails) SetDescription(v string) *AwsKmsKeyDetails { - s.Description = &v - return s -} - -// SetKeyId sets the KeyId field's value. -func (s *AwsKmsKeyDetails) SetKeyId(v string) *AwsKmsKeyDetails { - s.KeyId = &v - return s -} - -// SetKeyManager sets the KeyManager field's value. -func (s *AwsKmsKeyDetails) SetKeyManager(v string) *AwsKmsKeyDetails { - s.KeyManager = &v - return s -} - -// SetKeyState sets the KeyState field's value. -func (s *AwsKmsKeyDetails) SetKeyState(v string) *AwsKmsKeyDetails { - s.KeyState = &v +// SetSourceBackupArn sets the SourceBackupArn field's value. +func (s *AwsDynamoDbTableRestoreSummary) SetSourceBackupArn(v string) *AwsDynamoDbTableRestoreSummary { + s.SourceBackupArn = &v return s } -// SetOrigin sets the Origin field's value. -func (s *AwsKmsKeyDetails) SetOrigin(v string) *AwsKmsKeyDetails { - s.Origin = &v +// SetSourceTableArn sets the SourceTableArn field's value. +func (s *AwsDynamoDbTableRestoreSummary) SetSourceTableArn(v string) *AwsDynamoDbTableRestoreSummary { + s.SourceTableArn = &v return s } -// The code for the Lambda function. You can specify either an object in Amazon -// S3, or upload a deployment package directly. -type AwsLambdaFunctionCode struct { +// Information about the server-side encryption for the table. +type AwsDynamoDbTableSseDescription struct { _ struct{} `type:"structure"` - // An Amazon S3 bucket in the same AWS Region as your function. The bucket can - // be in a different AWS account. - S3Bucket *string `type:"string"` + // If the key is inaccessible, the date and time when DynamoDB detected that + // the key was inaccessible. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + InaccessibleEncryptionDateTime *string `type:"string"` - // The Amazon S3 key of the deployment package. - S3Key *string `type:"string"` + // The ARN of the AWS KMS customer master key (CMK) that is used for the AWS + // KMS encryption. + KmsMasterKeyArn *string `type:"string"` - // For versioned objects, the version of the deployment package object to use. - S3ObjectVersion *string `type:"string"` + // The type of server-side encryption. + SseType *string `type:"string"` - // The base64-encoded contents of the deployment package. AWS SDK and AWS CLI - // clients handle the encoding for you. - ZipFile *string `type:"string"` + // The status of the server-side encryption. + Status *string `type:"string"` } // String returns the string representation -func (s AwsLambdaFunctionCode) String() string { +func (s AwsDynamoDbTableSseDescription) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsLambdaFunctionCode) GoString() string { +func (s AwsDynamoDbTableSseDescription) GoString() string { return s.String() } -// SetS3Bucket sets the S3Bucket field's value. -func (s *AwsLambdaFunctionCode) SetS3Bucket(v string) *AwsLambdaFunctionCode { - s.S3Bucket = &v +// SetInaccessibleEncryptionDateTime sets the InaccessibleEncryptionDateTime field's value. +func (s *AwsDynamoDbTableSseDescription) SetInaccessibleEncryptionDateTime(v string) *AwsDynamoDbTableSseDescription { + s.InaccessibleEncryptionDateTime = &v return s } -// SetS3Key sets the S3Key field's value. -func (s *AwsLambdaFunctionCode) SetS3Key(v string) *AwsLambdaFunctionCode { - s.S3Key = &v +// SetKmsMasterKeyArn sets the KmsMasterKeyArn field's value. +func (s *AwsDynamoDbTableSseDescription) SetKmsMasterKeyArn(v string) *AwsDynamoDbTableSseDescription { + s.KmsMasterKeyArn = &v return s } -// SetS3ObjectVersion sets the S3ObjectVersion field's value. -func (s *AwsLambdaFunctionCode) SetS3ObjectVersion(v string) *AwsLambdaFunctionCode { - s.S3ObjectVersion = &v +// SetSseType sets the SseType field's value. +func (s *AwsDynamoDbTableSseDescription) SetSseType(v string) *AwsDynamoDbTableSseDescription { + s.SseType = &v return s } -// SetZipFile sets the ZipFile field's value. -func (s *AwsLambdaFunctionCode) SetZipFile(v string) *AwsLambdaFunctionCode { - s.ZipFile = &v +// SetStatus sets the Status field's value. +func (s *AwsDynamoDbTableSseDescription) SetStatus(v string) *AwsDynamoDbTableSseDescription { + s.Status = &v return s } -// The dead-letter queue for failed asynchronous invocations. -type AwsLambdaFunctionDeadLetterConfig struct { +// The current DynamoDB Streams configuration for the table. +type AwsDynamoDbTableStreamSpecification struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of an Amazon SQS queue or Amazon SNS topic. - TargetArn *string `type:"string"` + // Indicates whether DynamoDB Streams is enabled on the table. + StreamEnabled *bool `type:"boolean"` + + // Determines the information that is written to the table. + StreamViewType *string `type:"string"` } // String returns the string representation -func (s AwsLambdaFunctionDeadLetterConfig) String() string { +func (s AwsDynamoDbTableStreamSpecification) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsLambdaFunctionDeadLetterConfig) GoString() string { +func (s AwsDynamoDbTableStreamSpecification) GoString() string { return s.String() } -// SetTargetArn sets the TargetArn field's value. -func (s *AwsLambdaFunctionDeadLetterConfig) SetTargetArn(v string) *AwsLambdaFunctionDeadLetterConfig { - s.TargetArn = &v +// SetStreamEnabled sets the StreamEnabled field's value. +func (s *AwsDynamoDbTableStreamSpecification) SetStreamEnabled(v bool) *AwsDynamoDbTableStreamSpecification { + s.StreamEnabled = &v return s } -// Details about a function's configuration. -type AwsLambdaFunctionDetails struct { - _ struct{} `type:"structure"` - - // An AwsLambdaFunctionCode object. - Code *AwsLambdaFunctionCode `type:"structure"` - - // The SHA256 hash of the function's deployment package. - CodeSha256 *string `type:"string"` - - // The function's dead letter queue. - DeadLetterConfig *AwsLambdaFunctionDeadLetterConfig `type:"structure"` - - // The function's environment variables. - Environment *AwsLambdaFunctionEnvironment `type:"structure"` +// SetStreamViewType sets the StreamViewType field's value. +func (s *AwsDynamoDbTableStreamSpecification) SetStreamViewType(v string) *AwsDynamoDbTableStreamSpecification { + s.StreamViewType = &v + return s +} - // The name of the function. - FunctionName *string `type:"string"` +// Information about an Elastic IP address. +type AwsEc2EipDetails struct { + _ struct{} `type:"structure"` - // The function that Lambda calls to begin executing your function. - Handler *string `type:"string"` + // The identifier that AWS assigns to represent the allocation of the Elastic + // IP address for use with Amazon VPC. + AllocationId *string `type:"string"` - // The KMS key that's used to encrypt the function's environment variables. - // This key is only returned if you've configured a customer managed CMK. - KmsKeyArn *string `type:"string"` + // The identifier that represents the association of the Elastic IP address + // with an EC2 instance. + AssociationId *string `type:"string"` - // Indicates when the function was last updated. + // The domain in which to allocate the address. // - // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time - // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot - // contain spaces. For example, 2020-03-22T13:22:13.933Z. - LastModified *string `type:"string"` - - // The function's layers. - Layers []*AwsLambdaFunctionLayer `type:"list"` - - // For Lambda@Edge functions, the ARN of the master function. - MasterArn *string `type:"string"` - - // The memory that's allocated to the function. - MemorySize *int64 `type:"integer"` + // If the address is for use with EC2 instances in a VPC, then Domain is vpc. + // Otherwise, Domain is standard. + Domain *string `type:"string"` - // The latest updated revision of the function or alias. - RevisionId *string `type:"string"` + // The identifier of the EC2 instance. + InstanceId *string `type:"string"` - // The function's execution role. - Role *string `type:"string"` + // The name of the location from which the Elastic IP address is advertised. + NetworkBorderGroup *string `type:"string"` - // The runtime environment for the Lambda function. - Runtime *string `type:"string"` + // The identifier of the network interface. + NetworkInterfaceId *string `type:"string"` - // The amount of time that Lambda allows a function to run before stopping it. - Timeout *int64 `type:"integer"` + // The AWS account ID of the owner of the network interface. + NetworkInterfaceOwnerId *string `type:"string"` - // The function's AWS X-Ray tracing configuration. - TracingConfig *AwsLambdaFunctionTracingConfig `type:"structure"` + // The private IP address that is associated with the Elastic IP address. + PrivateIpAddress *string `type:"string"` - // The version of the Lambda function. - Version *string `type:"string"` + // A public IP address that is associated with the EC2 instance. + PublicIp *string `type:"string"` - // The function's networking configuration. - VpcConfig *AwsLambdaFunctionVpcConfig `type:"structure"` + // The identifier of an IP address pool. This parameter allows Amazon EC2 to + // select an IP address from the address pool. + PublicIpv4Pool *string `type:"string"` } // String returns the string representation -func (s AwsLambdaFunctionDetails) String() string { +func (s AwsEc2EipDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsLambdaFunctionDetails) GoString() string { +func (s AwsEc2EipDetails) GoString() string { return s.String() } -// SetCode sets the Code field's value. -func (s *AwsLambdaFunctionDetails) SetCode(v *AwsLambdaFunctionCode) *AwsLambdaFunctionDetails { - s.Code = v +// SetAllocationId sets the AllocationId field's value. +func (s *AwsEc2EipDetails) SetAllocationId(v string) *AwsEc2EipDetails { + s.AllocationId = &v return s } -// SetCodeSha256 sets the CodeSha256 field's value. -func (s *AwsLambdaFunctionDetails) SetCodeSha256(v string) *AwsLambdaFunctionDetails { - s.CodeSha256 = &v +// SetAssociationId sets the AssociationId field's value. +func (s *AwsEc2EipDetails) SetAssociationId(v string) *AwsEc2EipDetails { + s.AssociationId = &v return s } -// SetDeadLetterConfig sets the DeadLetterConfig field's value. -func (s *AwsLambdaFunctionDetails) SetDeadLetterConfig(v *AwsLambdaFunctionDeadLetterConfig) *AwsLambdaFunctionDetails { - s.DeadLetterConfig = v +// SetDomain sets the Domain field's value. +func (s *AwsEc2EipDetails) SetDomain(v string) *AwsEc2EipDetails { + s.Domain = &v return s } -// SetEnvironment sets the Environment field's value. -func (s *AwsLambdaFunctionDetails) SetEnvironment(v *AwsLambdaFunctionEnvironment) *AwsLambdaFunctionDetails { - s.Environment = v +// SetInstanceId sets the InstanceId field's value. +func (s *AwsEc2EipDetails) SetInstanceId(v string) *AwsEc2EipDetails { + s.InstanceId = &v return s } -// SetFunctionName sets the FunctionName field's value. -func (s *AwsLambdaFunctionDetails) SetFunctionName(v string) *AwsLambdaFunctionDetails { - s.FunctionName = &v +// SetNetworkBorderGroup sets the NetworkBorderGroup field's value. +func (s *AwsEc2EipDetails) SetNetworkBorderGroup(v string) *AwsEc2EipDetails { + s.NetworkBorderGroup = &v return s } -// SetHandler sets the Handler field's value. -func (s *AwsLambdaFunctionDetails) SetHandler(v string) *AwsLambdaFunctionDetails { - s.Handler = &v +// SetNetworkInterfaceId sets the NetworkInterfaceId field's value. +func (s *AwsEc2EipDetails) SetNetworkInterfaceId(v string) *AwsEc2EipDetails { + s.NetworkInterfaceId = &v return s } -// SetKmsKeyArn sets the KmsKeyArn field's value. -func (s *AwsLambdaFunctionDetails) SetKmsKeyArn(v string) *AwsLambdaFunctionDetails { - s.KmsKeyArn = &v +// SetNetworkInterfaceOwnerId sets the NetworkInterfaceOwnerId field's value. +func (s *AwsEc2EipDetails) SetNetworkInterfaceOwnerId(v string) *AwsEc2EipDetails { + s.NetworkInterfaceOwnerId = &v return s } -// SetLastModified sets the LastModified field's value. -func (s *AwsLambdaFunctionDetails) SetLastModified(v string) *AwsLambdaFunctionDetails { - s.LastModified = &v +// SetPrivateIpAddress sets the PrivateIpAddress field's value. +func (s *AwsEc2EipDetails) SetPrivateIpAddress(v string) *AwsEc2EipDetails { + s.PrivateIpAddress = &v return s } -// SetLayers sets the Layers field's value. -func (s *AwsLambdaFunctionDetails) SetLayers(v []*AwsLambdaFunctionLayer) *AwsLambdaFunctionDetails { - s.Layers = v +// SetPublicIp sets the PublicIp field's value. +func (s *AwsEc2EipDetails) SetPublicIp(v string) *AwsEc2EipDetails { + s.PublicIp = &v return s } -// SetMasterArn sets the MasterArn field's value. -func (s *AwsLambdaFunctionDetails) SetMasterArn(v string) *AwsLambdaFunctionDetails { - s.MasterArn = &v +// SetPublicIpv4Pool sets the PublicIpv4Pool field's value. +func (s *AwsEc2EipDetails) SetPublicIpv4Pool(v string) *AwsEc2EipDetails { + s.PublicIpv4Pool = &v return s } -// SetMemorySize sets the MemorySize field's value. -func (s *AwsLambdaFunctionDetails) SetMemorySize(v int64) *AwsLambdaFunctionDetails { - s.MemorySize = &v - return s -} - -// SetRevisionId sets the RevisionId field's value. -func (s *AwsLambdaFunctionDetails) SetRevisionId(v string) *AwsLambdaFunctionDetails { - s.RevisionId = &v - return s -} +// The details of an Amazon EC2 instance. +type AwsEc2InstanceDetails struct { + _ struct{} `type:"structure"` -// SetRole sets the Role field's value. -func (s *AwsLambdaFunctionDetails) SetRole(v string) *AwsLambdaFunctionDetails { - s.Role = &v - return s -} + // The IAM profile ARN of the instance. + IamInstanceProfileArn *string `type:"string"` -// SetRuntime sets the Runtime field's value. -func (s *AwsLambdaFunctionDetails) SetRuntime(v string) *AwsLambdaFunctionDetails { - s.Runtime = &v - return s -} + // The Amazon Machine Image (AMI) ID of the instance. + ImageId *string `type:"string"` -// SetTimeout sets the Timeout field's value. -func (s *AwsLambdaFunctionDetails) SetTimeout(v int64) *AwsLambdaFunctionDetails { - s.Timeout = &v - return s -} + // The IPv4 addresses associated with the instance. + IpV4Addresses []*string `type:"list"` -// SetTracingConfig sets the TracingConfig field's value. -func (s *AwsLambdaFunctionDetails) SetTracingConfig(v *AwsLambdaFunctionTracingConfig) *AwsLambdaFunctionDetails { - s.TracingConfig = v - return s -} + // The IPv6 addresses associated with the instance. + IpV6Addresses []*string `type:"list"` -// SetVersion sets the Version field's value. -func (s *AwsLambdaFunctionDetails) SetVersion(v string) *AwsLambdaFunctionDetails { - s.Version = &v - return s -} + // The key name associated with the instance. + KeyName *string `type:"string"` -// SetVpcConfig sets the VpcConfig field's value. -func (s *AwsLambdaFunctionDetails) SetVpcConfig(v *AwsLambdaFunctionVpcConfig) *AwsLambdaFunctionDetails { - s.VpcConfig = v - return s -} + // Indicates when the instance was launched. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + LaunchedAt *string `type:"string"` -// A function's environment variable settings. -type AwsLambdaFunctionEnvironment struct { - _ struct{} `type:"structure"` + // The identifier of the subnet that the instance was launched in. + SubnetId *string `type:"string"` - // An AwsLambdaFunctionEnvironmentError object. - Error *AwsLambdaFunctionEnvironmentError `type:"structure"` + // The instance type of the instance. + Type *string `type:"string"` - // Environment variable key-value pairs. - Variables map[string]*string `type:"map"` + // The identifier of the VPC that the instance was launched in. + VpcId *string `type:"string"` } // String returns the string representation -func (s AwsLambdaFunctionEnvironment) String() string { +func (s AwsEc2InstanceDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsLambdaFunctionEnvironment) GoString() string { +func (s AwsEc2InstanceDetails) GoString() string { return s.String() } -// SetError sets the Error field's value. -func (s *AwsLambdaFunctionEnvironment) SetError(v *AwsLambdaFunctionEnvironmentError) *AwsLambdaFunctionEnvironment { - s.Error = v +// SetIamInstanceProfileArn sets the IamInstanceProfileArn field's value. +func (s *AwsEc2InstanceDetails) SetIamInstanceProfileArn(v string) *AwsEc2InstanceDetails { + s.IamInstanceProfileArn = &v return s } -// SetVariables sets the Variables field's value. -func (s *AwsLambdaFunctionEnvironment) SetVariables(v map[string]*string) *AwsLambdaFunctionEnvironment { - s.Variables = v +// SetImageId sets the ImageId field's value. +func (s *AwsEc2InstanceDetails) SetImageId(v string) *AwsEc2InstanceDetails { + s.ImageId = &v return s } -// Error messages for environment variables that couldn't be applied. -type AwsLambdaFunctionEnvironmentError struct { - _ struct{} `type:"structure"` +// SetIpV4Addresses sets the IpV4Addresses field's value. +func (s *AwsEc2InstanceDetails) SetIpV4Addresses(v []*string) *AwsEc2InstanceDetails { + s.IpV4Addresses = v + return s +} - // The error code. - ErrorCode *string `type:"string"` +// SetIpV6Addresses sets the IpV6Addresses field's value. +func (s *AwsEc2InstanceDetails) SetIpV6Addresses(v []*string) *AwsEc2InstanceDetails { + s.IpV6Addresses = v + return s +} - // The error message. - Message *string `type:"string"` +// SetKeyName sets the KeyName field's value. +func (s *AwsEc2InstanceDetails) SetKeyName(v string) *AwsEc2InstanceDetails { + s.KeyName = &v + return s } -// String returns the string representation -func (s AwsLambdaFunctionEnvironmentError) String() string { - return awsutil.Prettify(s) +// SetLaunchedAt sets the LaunchedAt field's value. +func (s *AwsEc2InstanceDetails) SetLaunchedAt(v string) *AwsEc2InstanceDetails { + s.LaunchedAt = &v + return s } -// GoString returns the string representation -func (s AwsLambdaFunctionEnvironmentError) GoString() string { - return s.String() +// SetSubnetId sets the SubnetId field's value. +func (s *AwsEc2InstanceDetails) SetSubnetId(v string) *AwsEc2InstanceDetails { + s.SubnetId = &v + return s } -// SetErrorCode sets the ErrorCode field's value. -func (s *AwsLambdaFunctionEnvironmentError) SetErrorCode(v string) *AwsLambdaFunctionEnvironmentError { - s.ErrorCode = &v +// SetType sets the Type field's value. +func (s *AwsEc2InstanceDetails) SetType(v string) *AwsEc2InstanceDetails { + s.Type = &v return s } -// SetMessage sets the Message field's value. -func (s *AwsLambdaFunctionEnvironmentError) SetMessage(v string) *AwsLambdaFunctionEnvironmentError { - s.Message = &v +// SetVpcId sets the VpcId field's value. +func (s *AwsEc2InstanceDetails) SetVpcId(v string) *AwsEc2InstanceDetails { + s.VpcId = &v return s } -// An AWS Lambda layer. -type AwsLambdaFunctionLayer struct { +// Information about the network interface attachment. +type AwsEc2NetworkInterfaceAttachment struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the function layer. - Arn *string `type:"string"` + // Indicates when the attachment initiated. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + AttachTime *string `type:"string"` - // The size of the layer archive in bytes. - CodeSize *int64 `type:"integer"` + // The identifier of the network interface attachment + AttachmentId *string `type:"string"` + + // Indicates whether the network interface is deleted when the instance is terminated. + DeleteOnTermination *bool `type:"boolean"` + + // The device index of the network interface attachment on the instance. + DeviceIndex *int64 `type:"integer"` + + // The ID of the instance. + InstanceId *string `type:"string"` + + // The AWS account ID of the owner of the instance. + InstanceOwnerId *string `type:"string"` + + // The attachment state. + // + // Valid values: attaching | attached | detaching | detached + Status *string `type:"string"` } // String returns the string representation -func (s AwsLambdaFunctionLayer) String() string { +func (s AwsEc2NetworkInterfaceAttachment) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsLambdaFunctionLayer) GoString() string { +func (s AwsEc2NetworkInterfaceAttachment) GoString() string { return s.String() } -// SetArn sets the Arn field's value. -func (s *AwsLambdaFunctionLayer) SetArn(v string) *AwsLambdaFunctionLayer { - s.Arn = &v +// SetAttachTime sets the AttachTime field's value. +func (s *AwsEc2NetworkInterfaceAttachment) SetAttachTime(v string) *AwsEc2NetworkInterfaceAttachment { + s.AttachTime = &v return s } -// SetCodeSize sets the CodeSize field's value. -func (s *AwsLambdaFunctionLayer) SetCodeSize(v int64) *AwsLambdaFunctionLayer { - s.CodeSize = &v +// SetAttachmentId sets the AttachmentId field's value. +func (s *AwsEc2NetworkInterfaceAttachment) SetAttachmentId(v string) *AwsEc2NetworkInterfaceAttachment { + s.AttachmentId = &v return s } -// The function's AWS X-Ray tracing configuration. -type AwsLambdaFunctionTracingConfig struct { - _ struct{} `type:"structure"` +// SetDeleteOnTermination sets the DeleteOnTermination field's value. +func (s *AwsEc2NetworkInterfaceAttachment) SetDeleteOnTermination(v bool) *AwsEc2NetworkInterfaceAttachment { + s.DeleteOnTermination = &v + return s +} - // The tracing mode. - Mode *string `type:"string"` +// SetDeviceIndex sets the DeviceIndex field's value. +func (s *AwsEc2NetworkInterfaceAttachment) SetDeviceIndex(v int64) *AwsEc2NetworkInterfaceAttachment { + s.DeviceIndex = &v + return s } -// String returns the string representation -func (s AwsLambdaFunctionTracingConfig) String() string { - return awsutil.Prettify(s) +// SetInstanceId sets the InstanceId field's value. +func (s *AwsEc2NetworkInterfaceAttachment) SetInstanceId(v string) *AwsEc2NetworkInterfaceAttachment { + s.InstanceId = &v + return s } -// GoString returns the string representation -func (s AwsLambdaFunctionTracingConfig) GoString() string { - return s.String() +// SetInstanceOwnerId sets the InstanceOwnerId field's value. +func (s *AwsEc2NetworkInterfaceAttachment) SetInstanceOwnerId(v string) *AwsEc2NetworkInterfaceAttachment { + s.InstanceOwnerId = &v + return s } -// SetMode sets the Mode field's value. -func (s *AwsLambdaFunctionTracingConfig) SetMode(v string) *AwsLambdaFunctionTracingConfig { - s.Mode = &v +// SetStatus sets the Status field's value. +func (s *AwsEc2NetworkInterfaceAttachment) SetStatus(v string) *AwsEc2NetworkInterfaceAttachment { + s.Status = &v return s } -// The VPC security groups and subnets that are attached to a Lambda function. -// For more information, see VPC Settings. -type AwsLambdaFunctionVpcConfig struct { +// Details about the network interface +type AwsEc2NetworkInterfaceDetails struct { _ struct{} `type:"structure"` - // A list of VPC security groups IDs. - SecurityGroupIds []*string `type:"list"` + // The network interface attachment. + Attachment *AwsEc2NetworkInterfaceAttachment `type:"structure"` - // A list of VPC subnet IDs. - SubnetIds []*string `type:"list"` + // The ID of the network interface. + NetworkInterfaceId *string `type:"string"` - // The ID of the VPC. - VpcId *string `type:"string"` + // Security groups for the network interface. + SecurityGroups []*AwsEc2NetworkInterfaceSecurityGroup `type:"list"` + + // Indicates whether traffic to or from the instance is validated. + SourceDestCheck *bool `type:"boolean"` } // String returns the string representation -func (s AwsLambdaFunctionVpcConfig) String() string { +func (s AwsEc2NetworkInterfaceDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsLambdaFunctionVpcConfig) GoString() string { +func (s AwsEc2NetworkInterfaceDetails) GoString() string { return s.String() } -// SetSecurityGroupIds sets the SecurityGroupIds field's value. -func (s *AwsLambdaFunctionVpcConfig) SetSecurityGroupIds(v []*string) *AwsLambdaFunctionVpcConfig { - s.SecurityGroupIds = v +// SetAttachment sets the Attachment field's value. +func (s *AwsEc2NetworkInterfaceDetails) SetAttachment(v *AwsEc2NetworkInterfaceAttachment) *AwsEc2NetworkInterfaceDetails { + s.Attachment = v return s } -// SetSubnetIds sets the SubnetIds field's value. -func (s *AwsLambdaFunctionVpcConfig) SetSubnetIds(v []*string) *AwsLambdaFunctionVpcConfig { - s.SubnetIds = v +// SetNetworkInterfaceId sets the NetworkInterfaceId field's value. +func (s *AwsEc2NetworkInterfaceDetails) SetNetworkInterfaceId(v string) *AwsEc2NetworkInterfaceDetails { + s.NetworkInterfaceId = &v return s } -// SetVpcId sets the VpcId field's value. -func (s *AwsLambdaFunctionVpcConfig) SetVpcId(v string) *AwsLambdaFunctionVpcConfig { - s.VpcId = &v - return s -} +// SetSecurityGroups sets the SecurityGroups field's value. +func (s *AwsEc2NetworkInterfaceDetails) SetSecurityGroups(v []*AwsEc2NetworkInterfaceSecurityGroup) *AwsEc2NetworkInterfaceDetails { + s.SecurityGroups = v + return s +} -// Details about a Lambda layer version. -type AwsLambdaLayerVersionDetails struct { - _ struct{} `type:"structure"` +// SetSourceDestCheck sets the SourceDestCheck field's value. +func (s *AwsEc2NetworkInterfaceDetails) SetSourceDestCheck(v bool) *AwsEc2NetworkInterfaceDetails { + s.SourceDestCheck = &v + return s +} - // The layer's compatible runtimes. Maximum number of five items. - // - // Valid values: nodejs10.x | nodejs12.x | java8 | java11 | python2.7 | python3.6 - // | python3.7 | python3.8 | dotnetcore1.0 | dotnetcore2.1 | go1.x | ruby2.5 - // | provided - CompatibleRuntimes []*string `type:"list"` +// A security group associated with the network interface. +type AwsEc2NetworkInterfaceSecurityGroup struct { + _ struct{} `type:"structure"` - // Indicates when the version was created. - // - // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time - // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot - // contain spaces. For example, 2020-03-22T13:22:13.933Z. - CreatedDate *string `type:"string"` + // The ID of the security group. + GroupId *string `type:"string"` - // The version number. - Version *int64 `type:"long"` + // The name of the security group. + GroupName *string `type:"string"` } // String returns the string representation -func (s AwsLambdaLayerVersionDetails) String() string { +func (s AwsEc2NetworkInterfaceSecurityGroup) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsLambdaLayerVersionDetails) GoString() string { +func (s AwsEc2NetworkInterfaceSecurityGroup) GoString() string { return s.String() } -// SetCompatibleRuntimes sets the CompatibleRuntimes field's value. -func (s *AwsLambdaLayerVersionDetails) SetCompatibleRuntimes(v []*string) *AwsLambdaLayerVersionDetails { - s.CompatibleRuntimes = v - return s -} - -// SetCreatedDate sets the CreatedDate field's value. -func (s *AwsLambdaLayerVersionDetails) SetCreatedDate(v string) *AwsLambdaLayerVersionDetails { - s.CreatedDate = &v +// SetGroupId sets the GroupId field's value. +func (s *AwsEc2NetworkInterfaceSecurityGroup) SetGroupId(v string) *AwsEc2NetworkInterfaceSecurityGroup { + s.GroupId = &v return s } -// SetVersion sets the Version field's value. -func (s *AwsLambdaLayerVersionDetails) SetVersion(v int64) *AwsLambdaLayerVersionDetails { - s.Version = &v +// SetGroupName sets the GroupName field's value. +func (s *AwsEc2NetworkInterfaceSecurityGroup) SetGroupName(v string) *AwsEc2NetworkInterfaceSecurityGroup { + s.GroupName = &v return s } -// An IAM role that is associated with the Amazon RDS DB cluster. -type AwsRdsDbClusterAssociatedRole struct { +// Details about an EC2 security group. +type AwsEc2SecurityGroupDetails struct { _ struct{} `type:"structure"` - // The ARN of the IAM role. - RoleArn *string `type:"string"` + // The ID of the security group. + GroupId *string `type:"string"` - // The status of the association between the IAM role and the DB cluster. - Status *string `type:"string"` + // The name of the security group. + GroupName *string `type:"string"` + + // The inbound rules associated with the security group. + IpPermissions []*AwsEc2SecurityGroupIpPermission `type:"list"` + + // [VPC only] The outbound rules associated with the security group. + IpPermissionsEgress []*AwsEc2SecurityGroupIpPermission `type:"list"` + + // The AWS account ID of the owner of the security group. + OwnerId *string `type:"string"` + + // [VPC only] The ID of the VPC for the security group. + VpcId *string `type:"string"` } // String returns the string representation -func (s AwsRdsDbClusterAssociatedRole) String() string { +func (s AwsEc2SecurityGroupDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsRdsDbClusterAssociatedRole) GoString() string { +func (s AwsEc2SecurityGroupDetails) GoString() string { return s.String() } -// SetRoleArn sets the RoleArn field's value. -func (s *AwsRdsDbClusterAssociatedRole) SetRoleArn(v string) *AwsRdsDbClusterAssociatedRole { - s.RoleArn = &v +// SetGroupId sets the GroupId field's value. +func (s *AwsEc2SecurityGroupDetails) SetGroupId(v string) *AwsEc2SecurityGroupDetails { + s.GroupId = &v return s } -// SetStatus sets the Status field's value. -func (s *AwsRdsDbClusterAssociatedRole) SetStatus(v string) *AwsRdsDbClusterAssociatedRole { - s.Status = &v +// SetGroupName sets the GroupName field's value. +func (s *AwsEc2SecurityGroupDetails) SetGroupName(v string) *AwsEc2SecurityGroupDetails { + s.GroupName = &v return s } -// Information about an Amazon RDS DB cluster. -type AwsRdsDbClusterDetails struct { - _ struct{} `type:"structure"` - - // The status of the database activity stream. - ActivityStreamStatus *string `type:"string"` +// SetIpPermissions sets the IpPermissions field's value. +func (s *AwsEc2SecurityGroupDetails) SetIpPermissions(v []*AwsEc2SecurityGroupIpPermission) *AwsEc2SecurityGroupDetails { + s.IpPermissions = v + return s +} - // For all database engines except Aurora, specifies the allocated storage size - // in gibibytes (GiB). - AllocatedStorage *int64 `type:"integer"` +// SetIpPermissionsEgress sets the IpPermissionsEgress field's value. +func (s *AwsEc2SecurityGroupDetails) SetIpPermissionsEgress(v []*AwsEc2SecurityGroupIpPermission) *AwsEc2SecurityGroupDetails { + s.IpPermissionsEgress = v + return s +} - // A list of the IAM roles that are associated with the DB cluster. - AssociatedRoles []*AwsRdsDbClusterAssociatedRole `type:"list"` +// SetOwnerId sets the OwnerId field's value. +func (s *AwsEc2SecurityGroupDetails) SetOwnerId(v string) *AwsEc2SecurityGroupDetails { + s.OwnerId = &v + return s +} - // A list of Availability Zones (AZs) where instances in the DB cluster can - // be created. - AvailabilityZones []*string `type:"list"` +// SetVpcId sets the VpcId field's value. +func (s *AwsEc2SecurityGroupDetails) SetVpcId(v string) *AwsEc2SecurityGroupDetails { + s.VpcId = &v + return s +} - // The number of days for which automated backups are retained. - BackupRetentionPeriod *int64 `type:"integer"` +// An IP permission for an EC2 security group. +type AwsEc2SecurityGroupIpPermission struct { + _ struct{} `type:"structure"` - // Indicates when the DB cluster was created, in Universal Coordinated Time - // (UTC). + // The start of the port range for the TCP and UDP protocols, or an ICMP/ICMPv6 + // type number. // - // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time - // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot - // contain spaces. For example, 2020-03-22T13:22:13.933Z. - ClusterCreateTime *string `type:"string"` + // A value of -1 indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 + // types, you must specify all codes. + FromPort *int64 `type:"integer"` - // Whether tags are copied from the DB cluster to snapshots of the DB cluster. - CopyTagsToSnapshot *bool `type:"boolean"` + // The IP protocol name (tcp, udp, icmp, icmpv6) or number. + // + // [VPC only] Use -1 to specify all protocols. + // + // When authorizing security group rules, specifying -1 or a protocol number + // other than tcp, udp, icmp, or icmpv6 allows traffic on all ports, regardless + // of any port range you specify. + // + // For tcp, udp, and icmp, you must specify a port range. + // + // For icmpv6, the port range is optional. If you omit the port range, traffic + // for all types and codes is allowed. + IpProtocol *string `type:"string"` - // Whether the DB cluster is a clone of a DB cluster owned by a different AWS - // account. - CrossAccountClone *bool `type:"boolean"` + // The IPv4 ranges. + IpRanges []*AwsEc2SecurityGroupIpRange `type:"list"` - // A list of custom endpoints for the DB cluster. - CustomEndpoints []*string `type:"list"` + // The IPv6 ranges. + Ipv6Ranges []*AwsEc2SecurityGroupIpv6Range `type:"list"` - // The name of the database. - DatabaseName *string `type:"string"` + // [VPC only] The prefix list IDs for an AWS service. With outbound rules, this + // is the AWS service to access through a VPC endpoint from instances associated + // with the security group. + PrefixListIds []*AwsEc2SecurityGroupPrefixListId `type:"list"` - // The DB cluster identifier that the user assigned to the cluster. This identifier - // is the unique key that identifies a DB cluster. - DbClusterIdentifier *string `type:"string"` + // The end of the port range for the TCP and UDP protocols, or an ICMP/ICMPv6 + // code. + // + // A value of -1 indicates all ICMP/ICMPv6 codes. If you specify all ICMP/ICMPv6 + // types, you must specify all codes. + ToPort *int64 `type:"integer"` - // The list of instances that make up the DB cluster. - DbClusterMembers []*AwsRdsDbClusterMember `type:"list"` + // The security group and AWS account ID pairs. + UserIdGroupPairs []*AwsEc2SecurityGroupUserIdGroupPair `type:"list"` +} - // The list of option group memberships for this DB cluster. - DbClusterOptionGroupMemberships []*AwsRdsDbClusterOptionGroupMembership `type:"list"` +// String returns the string representation +func (s AwsEc2SecurityGroupIpPermission) String() string { + return awsutil.Prettify(s) +} - // The name of the DB cluster parameter group for the DB cluster. - DbClusterParameterGroup *string `type:"string"` +// GoString returns the string representation +func (s AwsEc2SecurityGroupIpPermission) GoString() string { + return s.String() +} - // The identifier of the DB cluster. The identifier must be unique within each - // AWS Region and is immutable. - DbClusterResourceId *string `type:"string"` +// SetFromPort sets the FromPort field's value. +func (s *AwsEc2SecurityGroupIpPermission) SetFromPort(v int64) *AwsEc2SecurityGroupIpPermission { + s.FromPort = &v + return s +} - // The subnet group that is associated with the DB cluster, including the name, - // description, and subnets in the subnet group. - DbSubnetGroup *string `type:"string"` +// SetIpProtocol sets the IpProtocol field's value. +func (s *AwsEc2SecurityGroupIpPermission) SetIpProtocol(v string) *AwsEc2SecurityGroupIpPermission { + s.IpProtocol = &v + return s +} - // Whether the DB cluster has deletion protection enabled. - DeletionProtection *bool `type:"boolean"` +// SetIpRanges sets the IpRanges field's value. +func (s *AwsEc2SecurityGroupIpPermission) SetIpRanges(v []*AwsEc2SecurityGroupIpRange) *AwsEc2SecurityGroupIpPermission { + s.IpRanges = v + return s +} - // The Active Directory domain membership records that are associated with the - // DB cluster. - DomainMemberships []*AwsRdsDbDomainMembership `type:"list"` +// SetIpv6Ranges sets the Ipv6Ranges field's value. +func (s *AwsEc2SecurityGroupIpPermission) SetIpv6Ranges(v []*AwsEc2SecurityGroupIpv6Range) *AwsEc2SecurityGroupIpPermission { + s.Ipv6Ranges = v + return s +} - // A list of log types that this DB cluster is configured to export to CloudWatch - // Logs. - EnabledCloudWatchLogsExports []*string `type:"list"` +// SetPrefixListIds sets the PrefixListIds field's value. +func (s *AwsEc2SecurityGroupIpPermission) SetPrefixListIds(v []*AwsEc2SecurityGroupPrefixListId) *AwsEc2SecurityGroupIpPermission { + s.PrefixListIds = v + return s +} - // The connection endpoint for the primary instance of the DB cluster. - Endpoint *string `type:"string"` +// SetToPort sets the ToPort field's value. +func (s *AwsEc2SecurityGroupIpPermission) SetToPort(v int64) *AwsEc2SecurityGroupIpPermission { + s.ToPort = &v + return s +} - // The name of the database engine to use for this DB cluster. - Engine *string `type:"string"` +// SetUserIdGroupPairs sets the UserIdGroupPairs field's value. +func (s *AwsEc2SecurityGroupIpPermission) SetUserIdGroupPairs(v []*AwsEc2SecurityGroupUserIdGroupPair) *AwsEc2SecurityGroupIpPermission { + s.UserIdGroupPairs = v + return s +} - // The database engine mode of the DB cluster. - EngineMode *string `type:"string"` - - // The version number of the database engine to use. - EngineVersion *string `type:"string"` - - // Specifies the identifier that Amazon Route 53 assigns when you create a hosted - // zone. - HostedZoneId *string `type:"string"` - - // Whether the HTTP endpoint for an Aurora Serverless DB cluster is enabled. - HttpEndpointEnabled *bool `type:"boolean"` - - // Whether the mapping of IAM accounts to database accounts is enabled. - IamDatabaseAuthenticationEnabled *bool `type:"boolean"` +// A range of IPv4 addresses. +type AwsEc2SecurityGroupIpRange struct { + _ struct{} `type:"structure"` - // The ARN of the AWS KMS master key that is used to encrypt the database instances - // in the DB cluster. - KmsKeyId *string `type:"string"` + // The IPv4 CIDR range. You can specify either a CIDR range or a source security + // group, but not both. To specify a single IPv4 address, use the /32 prefix + // length. + CidrIp *string `type:"string"` +} - // The name of the master user for the DB cluster. - MasterUsername *string `type:"string"` +// String returns the string representation +func (s AwsEc2SecurityGroupIpRange) String() string { + return awsutil.Prettify(s) +} - // Whether the DB cluster has instances in multiple Availability Zones. - MultiAz *bool `type:"boolean"` +// GoString returns the string representation +func (s AwsEc2SecurityGroupIpRange) GoString() string { + return s.String() +} - // The port number on which the DB instances in the DB cluster accept connections. - Port *int64 `type:"integer"` +// SetCidrIp sets the CidrIp field's value. +func (s *AwsEc2SecurityGroupIpRange) SetCidrIp(v string) *AwsEc2SecurityGroupIpRange { + s.CidrIp = &v + return s +} - // The range of time each day when automated backups are created, if automated - // backups are enabled. - // - // Uses the format HH:MM-HH:MM. For example, 04:52-05:22. - PreferredBackupWindow *string `type:"string"` +// A range of IPv6 addresses. +type AwsEc2SecurityGroupIpv6Range struct { + _ struct{} `type:"structure"` - // The weekly time range during which system maintenance can occur, in Universal - // Coordinated Time (UTC). - // - // Uses the format :HH:MM-:HH:MM. - // - // For the day values, use mon|tue|wed|thu|fri|sat|sun. - // - // For example, sun:09:32-sun:10:02. - PreferredMaintenanceWindow *string `type:"string"` + // The IPv6 CIDR range. You can specify either a CIDR range or a source security + // group, but not both. To specify a single IPv6 address, use the /128 prefix + // length. + CidrIpv6 *string `type:"string"` +} - // The identifiers of the read replicas that are associated with this DB cluster. - ReadReplicaIdentifiers []*string `type:"list"` +// String returns the string representation +func (s AwsEc2SecurityGroupIpv6Range) String() string { + return awsutil.Prettify(s) +} - // The reader endpoint for the DB cluster. - ReaderEndpoint *string `type:"string"` +// GoString returns the string representation +func (s AwsEc2SecurityGroupIpv6Range) GoString() string { + return s.String() +} - // The current status of this DB cluster. - Status *string `type:"string"` +// SetCidrIpv6 sets the CidrIpv6 field's value. +func (s *AwsEc2SecurityGroupIpv6Range) SetCidrIpv6(v string) *AwsEc2SecurityGroupIpv6Range { + s.CidrIpv6 = &v + return s +} - // Whether the DB cluster is encrypted. - StorageEncrypted *bool `type:"boolean"` +// A prefix list ID. +type AwsEc2SecurityGroupPrefixListId struct { + _ struct{} `type:"structure"` - // A list of VPC security groups that the DB cluster belongs to. - VpcSecurityGroups []*AwsRdsDbInstanceVpcSecurityGroup `type:"list"` + // The ID of the prefix. + PrefixListId *string `type:"string"` } // String returns the string representation -func (s AwsRdsDbClusterDetails) String() string { +func (s AwsEc2SecurityGroupPrefixListId) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsRdsDbClusterDetails) GoString() string { +func (s AwsEc2SecurityGroupPrefixListId) GoString() string { return s.String() } -// SetActivityStreamStatus sets the ActivityStreamStatus field's value. -func (s *AwsRdsDbClusterDetails) SetActivityStreamStatus(v string) *AwsRdsDbClusterDetails { - s.ActivityStreamStatus = &v +// SetPrefixListId sets the PrefixListId field's value. +func (s *AwsEc2SecurityGroupPrefixListId) SetPrefixListId(v string) *AwsEc2SecurityGroupPrefixListId { + s.PrefixListId = &v return s } -// SetAllocatedStorage sets the AllocatedStorage field's value. -func (s *AwsRdsDbClusterDetails) SetAllocatedStorage(v int64) *AwsRdsDbClusterDetails { - s.AllocatedStorage = &v - return s -} +// A relationship between a security group and a user. +type AwsEc2SecurityGroupUserIdGroupPair struct { + _ struct{} `type:"structure"` -// SetAssociatedRoles sets the AssociatedRoles field's value. -func (s *AwsRdsDbClusterDetails) SetAssociatedRoles(v []*AwsRdsDbClusterAssociatedRole) *AwsRdsDbClusterDetails { - s.AssociatedRoles = v - return s -} + // The ID of the security group. + GroupId *string `type:"string"` -// SetAvailabilityZones sets the AvailabilityZones field's value. -func (s *AwsRdsDbClusterDetails) SetAvailabilityZones(v []*string) *AwsRdsDbClusterDetails { - s.AvailabilityZones = v - return s -} + // The name of the security group. + GroupName *string `type:"string"` -// SetBackupRetentionPeriod sets the BackupRetentionPeriod field's value. -func (s *AwsRdsDbClusterDetails) SetBackupRetentionPeriod(v int64) *AwsRdsDbClusterDetails { - s.BackupRetentionPeriod = &v - return s + // The status of a VPC peering connection, if applicable. + PeeringStatus *string `type:"string"` + + // The ID of an AWS account. + // + // For a referenced security group in another VPC, the account ID of the referenced + // security group is returned in the response. If the referenced security group + // is deleted, this value is not returned. + // + // [EC2-Classic] Required when adding or removing rules that reference a security + // group in another AWS. + UserId *string `type:"string"` + + // The ID of the VPC for the referenced security group, if applicable. + VpcId *string `type:"string"` + + // The ID of the VPC peering connection, if applicable. + VpcPeeringConnectionId *string `type:"string"` } -// SetClusterCreateTime sets the ClusterCreateTime field's value. -func (s *AwsRdsDbClusterDetails) SetClusterCreateTime(v string) *AwsRdsDbClusterDetails { - s.ClusterCreateTime = &v - return s +// String returns the string representation +func (s AwsEc2SecurityGroupUserIdGroupPair) String() string { + return awsutil.Prettify(s) } -// SetCopyTagsToSnapshot sets the CopyTagsToSnapshot field's value. -func (s *AwsRdsDbClusterDetails) SetCopyTagsToSnapshot(v bool) *AwsRdsDbClusterDetails { - s.CopyTagsToSnapshot = &v - return s +// GoString returns the string representation +func (s AwsEc2SecurityGroupUserIdGroupPair) GoString() string { + return s.String() } -// SetCrossAccountClone sets the CrossAccountClone field's value. -func (s *AwsRdsDbClusterDetails) SetCrossAccountClone(v bool) *AwsRdsDbClusterDetails { - s.CrossAccountClone = &v +// SetGroupId sets the GroupId field's value. +func (s *AwsEc2SecurityGroupUserIdGroupPair) SetGroupId(v string) *AwsEc2SecurityGroupUserIdGroupPair { + s.GroupId = &v return s } -// SetCustomEndpoints sets the CustomEndpoints field's value. -func (s *AwsRdsDbClusterDetails) SetCustomEndpoints(v []*string) *AwsRdsDbClusterDetails { - s.CustomEndpoints = v +// SetGroupName sets the GroupName field's value. +func (s *AwsEc2SecurityGroupUserIdGroupPair) SetGroupName(v string) *AwsEc2SecurityGroupUserIdGroupPair { + s.GroupName = &v return s } -// SetDatabaseName sets the DatabaseName field's value. -func (s *AwsRdsDbClusterDetails) SetDatabaseName(v string) *AwsRdsDbClusterDetails { - s.DatabaseName = &v +// SetPeeringStatus sets the PeeringStatus field's value. +func (s *AwsEc2SecurityGroupUserIdGroupPair) SetPeeringStatus(v string) *AwsEc2SecurityGroupUserIdGroupPair { + s.PeeringStatus = &v return s } -// SetDbClusterIdentifier sets the DbClusterIdentifier field's value. -func (s *AwsRdsDbClusterDetails) SetDbClusterIdentifier(v string) *AwsRdsDbClusterDetails { - s.DbClusterIdentifier = &v +// SetUserId sets the UserId field's value. +func (s *AwsEc2SecurityGroupUserIdGroupPair) SetUserId(v string) *AwsEc2SecurityGroupUserIdGroupPair { + s.UserId = &v return s } -// SetDbClusterMembers sets the DbClusterMembers field's value. -func (s *AwsRdsDbClusterDetails) SetDbClusterMembers(v []*AwsRdsDbClusterMember) *AwsRdsDbClusterDetails { - s.DbClusterMembers = v +// SetVpcId sets the VpcId field's value. +func (s *AwsEc2SecurityGroupUserIdGroupPair) SetVpcId(v string) *AwsEc2SecurityGroupUserIdGroupPair { + s.VpcId = &v return s } -// SetDbClusterOptionGroupMemberships sets the DbClusterOptionGroupMemberships field's value. -func (s *AwsRdsDbClusterDetails) SetDbClusterOptionGroupMemberships(v []*AwsRdsDbClusterOptionGroupMembership) *AwsRdsDbClusterDetails { - s.DbClusterOptionGroupMemberships = v +// SetVpcPeeringConnectionId sets the VpcPeeringConnectionId field's value. +func (s *AwsEc2SecurityGroupUserIdGroupPair) SetVpcPeeringConnectionId(v string) *AwsEc2SecurityGroupUserIdGroupPair { + s.VpcPeeringConnectionId = &v return s } -// SetDbClusterParameterGroup sets the DbClusterParameterGroup field's value. -func (s *AwsRdsDbClusterDetails) SetDbClusterParameterGroup(v string) *AwsRdsDbClusterDetails { - s.DbClusterParameterGroup = &v - return s +// An attachment to an AWS EC2 volume. +type AwsEc2VolumeAttachment struct { + _ struct{} `type:"structure"` + + // The datetime when the attachment initiated. + AttachTime *string `type:"string"` + + // Whether the EBS volume is deleted when the EC2 instance is terminated. + DeleteOnTermination *bool `type:"boolean"` + + // The identifier of the EC2 instance. + InstanceId *string `type:"string"` + + // The attachment state of the volume. + Status *string `type:"string"` } -// SetDbClusterResourceId sets the DbClusterResourceId field's value. -func (s *AwsRdsDbClusterDetails) SetDbClusterResourceId(v string) *AwsRdsDbClusterDetails { - s.DbClusterResourceId = &v - return s +// String returns the string representation +func (s AwsEc2VolumeAttachment) String() string { + return awsutil.Prettify(s) } -// SetDbSubnetGroup sets the DbSubnetGroup field's value. -func (s *AwsRdsDbClusterDetails) SetDbSubnetGroup(v string) *AwsRdsDbClusterDetails { - s.DbSubnetGroup = &v - return s +// GoString returns the string representation +func (s AwsEc2VolumeAttachment) GoString() string { + return s.String() } -// SetDeletionProtection sets the DeletionProtection field's value. -func (s *AwsRdsDbClusterDetails) SetDeletionProtection(v bool) *AwsRdsDbClusterDetails { - s.DeletionProtection = &v +// SetAttachTime sets the AttachTime field's value. +func (s *AwsEc2VolumeAttachment) SetAttachTime(v string) *AwsEc2VolumeAttachment { + s.AttachTime = &v return s } -// SetDomainMemberships sets the DomainMemberships field's value. -func (s *AwsRdsDbClusterDetails) SetDomainMemberships(v []*AwsRdsDbDomainMembership) *AwsRdsDbClusterDetails { - s.DomainMemberships = v +// SetDeleteOnTermination sets the DeleteOnTermination field's value. +func (s *AwsEc2VolumeAttachment) SetDeleteOnTermination(v bool) *AwsEc2VolumeAttachment { + s.DeleteOnTermination = &v return s } -// SetEnabledCloudWatchLogsExports sets the EnabledCloudWatchLogsExports field's value. -func (s *AwsRdsDbClusterDetails) SetEnabledCloudWatchLogsExports(v []*string) *AwsRdsDbClusterDetails { - s.EnabledCloudWatchLogsExports = v +// SetInstanceId sets the InstanceId field's value. +func (s *AwsEc2VolumeAttachment) SetInstanceId(v string) *AwsEc2VolumeAttachment { + s.InstanceId = &v return s } -// SetEndpoint sets the Endpoint field's value. -func (s *AwsRdsDbClusterDetails) SetEndpoint(v string) *AwsRdsDbClusterDetails { - s.Endpoint = &v +// SetStatus sets the Status field's value. +func (s *AwsEc2VolumeAttachment) SetStatus(v string) *AwsEc2VolumeAttachment { + s.Status = &v return s } -// SetEngine sets the Engine field's value. -func (s *AwsRdsDbClusterDetails) SetEngine(v string) *AwsRdsDbClusterDetails { - s.Engine = &v - return s -} +// Details about an EC2 volume. +type AwsEc2VolumeDetails struct { + _ struct{} `type:"structure"` -// SetEngineMode sets the EngineMode field's value. -func (s *AwsRdsDbClusterDetails) SetEngineMode(v string) *AwsRdsDbClusterDetails { - s.EngineMode = &v - return s -} + // The volume attachments. + Attachments []*AwsEc2VolumeAttachment `type:"list"` -// SetEngineVersion sets the EngineVersion field's value. -func (s *AwsRdsDbClusterDetails) SetEngineVersion(v string) *AwsRdsDbClusterDetails { - s.EngineVersion = &v - return s -} + // Indicates when the volume was created. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + CreateTime *string `type:"string"` -// SetHostedZoneId sets the HostedZoneId field's value. -func (s *AwsRdsDbClusterDetails) SetHostedZoneId(v string) *AwsRdsDbClusterDetails { - s.HostedZoneId = &v - return s -} + // Whether the volume is encrypted. + Encrypted *bool `type:"boolean"` -// SetHttpEndpointEnabled sets the HttpEndpointEnabled field's value. -func (s *AwsRdsDbClusterDetails) SetHttpEndpointEnabled(v bool) *AwsRdsDbClusterDetails { - s.HttpEndpointEnabled = &v - return s -} + // The ARN of the AWS Key Management Service (AWS KMS) customer master key (CMK) + // that was used to protect the volume encryption key for the volume. + KmsKeyId *string `type:"string"` -// SetIamDatabaseAuthenticationEnabled sets the IamDatabaseAuthenticationEnabled field's value. -func (s *AwsRdsDbClusterDetails) SetIamDatabaseAuthenticationEnabled(v bool) *AwsRdsDbClusterDetails { - s.IamDatabaseAuthenticationEnabled = &v - return s -} + // The size of the volume, in GiBs. + Size *int64 `type:"integer"` -// SetKmsKeyId sets the KmsKeyId field's value. -func (s *AwsRdsDbClusterDetails) SetKmsKeyId(v string) *AwsRdsDbClusterDetails { - s.KmsKeyId = &v - return s -} + // The snapshot from which the volume was created. + SnapshotId *string `type:"string"` -// SetMasterUsername sets the MasterUsername field's value. -func (s *AwsRdsDbClusterDetails) SetMasterUsername(v string) *AwsRdsDbClusterDetails { - s.MasterUsername = &v - return s + // The volume state. + Status *string `type:"string"` } -// SetMultiAz sets the MultiAz field's value. -func (s *AwsRdsDbClusterDetails) SetMultiAz(v bool) *AwsRdsDbClusterDetails { - s.MultiAz = &v - return s +// String returns the string representation +func (s AwsEc2VolumeDetails) String() string { + return awsutil.Prettify(s) } -// SetPort sets the Port field's value. -func (s *AwsRdsDbClusterDetails) SetPort(v int64) *AwsRdsDbClusterDetails { - s.Port = &v - return s +// GoString returns the string representation +func (s AwsEc2VolumeDetails) GoString() string { + return s.String() } -// SetPreferredBackupWindow sets the PreferredBackupWindow field's value. -func (s *AwsRdsDbClusterDetails) SetPreferredBackupWindow(v string) *AwsRdsDbClusterDetails { - s.PreferredBackupWindow = &v +// SetAttachments sets the Attachments field's value. +func (s *AwsEc2VolumeDetails) SetAttachments(v []*AwsEc2VolumeAttachment) *AwsEc2VolumeDetails { + s.Attachments = v return s } -// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value. -func (s *AwsRdsDbClusterDetails) SetPreferredMaintenanceWindow(v string) *AwsRdsDbClusterDetails { - s.PreferredMaintenanceWindow = &v +// SetCreateTime sets the CreateTime field's value. +func (s *AwsEc2VolumeDetails) SetCreateTime(v string) *AwsEc2VolumeDetails { + s.CreateTime = &v return s } -// SetReadReplicaIdentifiers sets the ReadReplicaIdentifiers field's value. -func (s *AwsRdsDbClusterDetails) SetReadReplicaIdentifiers(v []*string) *AwsRdsDbClusterDetails { - s.ReadReplicaIdentifiers = v +// SetEncrypted sets the Encrypted field's value. +func (s *AwsEc2VolumeDetails) SetEncrypted(v bool) *AwsEc2VolumeDetails { + s.Encrypted = &v return s } -// SetReaderEndpoint sets the ReaderEndpoint field's value. -func (s *AwsRdsDbClusterDetails) SetReaderEndpoint(v string) *AwsRdsDbClusterDetails { - s.ReaderEndpoint = &v +// SetKmsKeyId sets the KmsKeyId field's value. +func (s *AwsEc2VolumeDetails) SetKmsKeyId(v string) *AwsEc2VolumeDetails { + s.KmsKeyId = &v return s } -// SetStatus sets the Status field's value. -func (s *AwsRdsDbClusterDetails) SetStatus(v string) *AwsRdsDbClusterDetails { - s.Status = &v +// SetSize sets the Size field's value. +func (s *AwsEc2VolumeDetails) SetSize(v int64) *AwsEc2VolumeDetails { + s.Size = &v return s } -// SetStorageEncrypted sets the StorageEncrypted field's value. -func (s *AwsRdsDbClusterDetails) SetStorageEncrypted(v bool) *AwsRdsDbClusterDetails { - s.StorageEncrypted = &v +// SetSnapshotId sets the SnapshotId field's value. +func (s *AwsEc2VolumeDetails) SetSnapshotId(v string) *AwsEc2VolumeDetails { + s.SnapshotId = &v return s } -// SetVpcSecurityGroups sets the VpcSecurityGroups field's value. -func (s *AwsRdsDbClusterDetails) SetVpcSecurityGroups(v []*AwsRdsDbInstanceVpcSecurityGroup) *AwsRdsDbClusterDetails { - s.VpcSecurityGroups = v +// SetStatus sets the Status field's value. +func (s *AwsEc2VolumeDetails) SetStatus(v string) *AwsEc2VolumeDetails { + s.Status = &v return s } -// Information about an instance in the DB cluster. -type AwsRdsDbClusterMember struct { +// Details about an EC2 VPC. +type AwsEc2VpcDetails struct { _ struct{} `type:"structure"` - // The status of the DB cluster parameter group for this member of the DB cluster. - DbClusterParameterGroupStatus *string `type:"string"` + // Information about the IPv4 CIDR blocks associated with the VPC. + CidrBlockAssociationSet []*CidrBlockAssociation `type:"list"` - // The instance identifier for this member of the DB cluster. - DbInstanceIdentifier *string `type:"string"` + // The identifier of the set of Dynamic Host Configuration Protocol (DHCP) options + // that are associated with the VPC. If the default options are associated with + // the VPC, then this is default. + DhcpOptionsId *string `type:"string"` - // Whether the cluster member is the primary instance for the DB cluster. - IsClusterWriter *bool `type:"boolean"` + // Information about the IPv6 CIDR blocks associated with the VPC. + Ipv6CidrBlockAssociationSet []*Ipv6CidrBlockAssociation `type:"list"` - // Specifies the order in which an Aurora replica is promoted to the primary - // instance when the existing primary instance fails. - PromotionTier *int64 `type:"integer"` + // The current state of the VPC. + State *string `type:"string"` } // String returns the string representation -func (s AwsRdsDbClusterMember) String() string { +func (s AwsEc2VpcDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsRdsDbClusterMember) GoString() string { +func (s AwsEc2VpcDetails) GoString() string { return s.String() } -// SetDbClusterParameterGroupStatus sets the DbClusterParameterGroupStatus field's value. -func (s *AwsRdsDbClusterMember) SetDbClusterParameterGroupStatus(v string) *AwsRdsDbClusterMember { - s.DbClusterParameterGroupStatus = &v +// SetCidrBlockAssociationSet sets the CidrBlockAssociationSet field's value. +func (s *AwsEc2VpcDetails) SetCidrBlockAssociationSet(v []*CidrBlockAssociation) *AwsEc2VpcDetails { + s.CidrBlockAssociationSet = v return s } -// SetDbInstanceIdentifier sets the DbInstanceIdentifier field's value. -func (s *AwsRdsDbClusterMember) SetDbInstanceIdentifier(v string) *AwsRdsDbClusterMember { - s.DbInstanceIdentifier = &v +// SetDhcpOptionsId sets the DhcpOptionsId field's value. +func (s *AwsEc2VpcDetails) SetDhcpOptionsId(v string) *AwsEc2VpcDetails { + s.DhcpOptionsId = &v return s } -// SetIsClusterWriter sets the IsClusterWriter field's value. -func (s *AwsRdsDbClusterMember) SetIsClusterWriter(v bool) *AwsRdsDbClusterMember { - s.IsClusterWriter = &v +// SetIpv6CidrBlockAssociationSet sets the Ipv6CidrBlockAssociationSet field's value. +func (s *AwsEc2VpcDetails) SetIpv6CidrBlockAssociationSet(v []*Ipv6CidrBlockAssociation) *AwsEc2VpcDetails { + s.Ipv6CidrBlockAssociationSet = v return s } -// SetPromotionTier sets the PromotionTier field's value. -func (s *AwsRdsDbClusterMember) SetPromotionTier(v int64) *AwsRdsDbClusterMember { - s.PromotionTier = &v +// SetState sets the State field's value. +func (s *AwsEc2VpcDetails) SetState(v string) *AwsEc2VpcDetails { + s.State = &v return s } -// Information about an option group membership for a DB cluster. -type AwsRdsDbClusterOptionGroupMembership struct { +// Information about an Elasticsearch domain. +type AwsElasticsearchDomainDetails struct { _ struct{} `type:"structure"` - // The name of the DB cluster option group. - DbClusterOptionGroupName *string `type:"string"` + // IAM policy document specifying the access policies for the new Amazon ES + // domain. + AccessPolicies *string `type:"string"` - // The status of the DB cluster option group. - Status *string `type:"string"` + // Additional options for the domain endpoint. + DomainEndpointOptions *AwsElasticsearchDomainDomainEndpointOptions `type:"structure"` + + // Unique identifier for an Amazon ES domain. + DomainId *string `type:"string"` + + // Name of an Amazon ES domain. + // + // Domain names are unique across all domains owned by the same account within + // an AWS Region. + // + // Domain names must start with a lowercase letter and must be between 3 and + // 28 characters. + // + // Valid characters are a-z (lowercase only), 0-9, and – (hyphen). + DomainName *string `type:"string"` + + // Elasticsearch version. + ElasticsearchVersion *string `type:"string"` + + // Details about the configuration for encryption at rest. + EncryptionAtRestOptions *AwsElasticsearchDomainEncryptionAtRestOptions `type:"structure"` + + // Domain-specific endpoint used to submit index, search, and data upload requests + // to an Amazon ES domain. + // + // The endpoint is a service URL. + Endpoint *string `type:"string"` + + // The key-value pair that exists if the Amazon ES domain uses VPC endpoints. + Endpoints map[string]*string `type:"map"` + + // Details about the configuration for node-to-node encryption. + NodeToNodeEncryptionOptions *AwsElasticsearchDomainNodeToNodeEncryptionOptions `type:"structure"` + + // Information that Amazon ES derives based on VPCOptions for the domain. + VPCOptions *AwsElasticsearchDomainVPCOptions `type:"structure"` } // String returns the string representation -func (s AwsRdsDbClusterOptionGroupMembership) String() string { +func (s AwsElasticsearchDomainDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsRdsDbClusterOptionGroupMembership) GoString() string { +func (s AwsElasticsearchDomainDetails) GoString() string { return s.String() } -// SetDbClusterOptionGroupName sets the DbClusterOptionGroupName field's value. -func (s *AwsRdsDbClusterOptionGroupMembership) SetDbClusterOptionGroupName(v string) *AwsRdsDbClusterOptionGroupMembership { - s.DbClusterOptionGroupName = &v +// SetAccessPolicies sets the AccessPolicies field's value. +func (s *AwsElasticsearchDomainDetails) SetAccessPolicies(v string) *AwsElasticsearchDomainDetails { + s.AccessPolicies = &v return s } -// SetStatus sets the Status field's value. -func (s *AwsRdsDbClusterOptionGroupMembership) SetStatus(v string) *AwsRdsDbClusterOptionGroupMembership { - s.Status = &v +// SetDomainEndpointOptions sets the DomainEndpointOptions field's value. +func (s *AwsElasticsearchDomainDetails) SetDomainEndpointOptions(v *AwsElasticsearchDomainDomainEndpointOptions) *AwsElasticsearchDomainDetails { + s.DomainEndpointOptions = v return s } -// Information about an Amazon RDS DB cluster snapshot. -type AwsRdsDbClusterSnapshotDetails struct { - _ struct{} `type:"structure"` +// SetDomainId sets the DomainId field's value. +func (s *AwsElasticsearchDomainDetails) SetDomainId(v string) *AwsElasticsearchDomainDetails { + s.DomainId = &v + return s +} - // Specifies the allocated storage size in gibibytes (GiB). - AllocatedStorage *int64 `type:"integer"` +// SetDomainName sets the DomainName field's value. +func (s *AwsElasticsearchDomainDetails) SetDomainName(v string) *AwsElasticsearchDomainDetails { + s.DomainName = &v + return s +} - // A list of Availability Zones where instances in the DB cluster can be created. - AvailabilityZones []*string `type:"list"` +// SetElasticsearchVersion sets the ElasticsearchVersion field's value. +func (s *AwsElasticsearchDomainDetails) SetElasticsearchVersion(v string) *AwsElasticsearchDomainDetails { + s.ElasticsearchVersion = &v + return s +} - // Indicates when the DB cluster was created, in Universal Coordinated Time - // (UTC). - // - // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time - // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot - // contain spaces. For example, 2020-03-22T13:22:13.933Z. - ClusterCreateTime *string `type:"string"` - - // The DB cluster identifier. - DbClusterIdentifier *string `type:"string"` +// SetEncryptionAtRestOptions sets the EncryptionAtRestOptions field's value. +func (s *AwsElasticsearchDomainDetails) SetEncryptionAtRestOptions(v *AwsElasticsearchDomainEncryptionAtRestOptions) *AwsElasticsearchDomainDetails { + s.EncryptionAtRestOptions = v + return s +} - // The identifier of the DB cluster snapshot. - DbClusterSnapshotIdentifier *string `type:"string"` +// SetEndpoint sets the Endpoint field's value. +func (s *AwsElasticsearchDomainDetails) SetEndpoint(v string) *AwsElasticsearchDomainDetails { + s.Endpoint = &v + return s +} - Engine *string `type:"string"` +// SetEndpoints sets the Endpoints field's value. +func (s *AwsElasticsearchDomainDetails) SetEndpoints(v map[string]*string) *AwsElasticsearchDomainDetails { + s.Endpoints = v + return s +} - // The version of the database engine to use. - EngineVersion *string `type:"string"` +// SetNodeToNodeEncryptionOptions sets the NodeToNodeEncryptionOptions field's value. +func (s *AwsElasticsearchDomainDetails) SetNodeToNodeEncryptionOptions(v *AwsElasticsearchDomainNodeToNodeEncryptionOptions) *AwsElasticsearchDomainDetails { + s.NodeToNodeEncryptionOptions = v + return s +} - // Whether mapping of IAM accounts to database accounts is enabled. - IamDatabaseAuthenticationEnabled *bool `type:"boolean"` +// SetVPCOptions sets the VPCOptions field's value. +func (s *AwsElasticsearchDomainDetails) SetVPCOptions(v *AwsElasticsearchDomainVPCOptions) *AwsElasticsearchDomainDetails { + s.VPCOptions = v + return s +} - // The ARN of the AWS KMS master key that is used to encrypt the database instances - // in the DB cluster. - KmsKeyId *string `type:"string"` +// Additional options for the domain endpoint, such as whether to require HTTPS +// for all traffic. +type AwsElasticsearchDomainDomainEndpointOptions struct { + _ struct{} `type:"structure"` - // The license model information for this DB cluster snapshot. - LicenseModel *string `type:"string"` + // Whether to require that all traffic to the domain arrive over HTTPS. + EnforceHTTPS *bool `type:"boolean"` - // The name of the master user for the DB cluster. - MasterUsername *string `type:"string"` + // The TLS security policy to apply to the HTTPS endpoint of the Elasticsearch + // domain. + // + // Valid values: + // + // * Policy-Min-TLS-1-0-2019-07, which supports TLSv1.0 and higher + // + // * Policy-Min-TLS-1-2-2019-07, which only supports TLSv1.2 + TLSSecurityPolicy *string `type:"string"` +} - // Specifies the percentage of the estimated data that has been transferred. - PercentProgress *int64 `type:"integer"` +// String returns the string representation +func (s AwsElasticsearchDomainDomainEndpointOptions) String() string { + return awsutil.Prettify(s) +} - // The port number on which the DB instances in the DB cluster accept connections. - Port *int64 `type:"integer"` +// GoString returns the string representation +func (s AwsElasticsearchDomainDomainEndpointOptions) GoString() string { + return s.String() +} - // Indicates when the snapshot was taken. - // - // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time - // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot - // contain spaces. For example, 2020-03-22T13:22:13.933Z. - SnapshotCreateTime *string `type:"string"` +// SetEnforceHTTPS sets the EnforceHTTPS field's value. +func (s *AwsElasticsearchDomainDomainEndpointOptions) SetEnforceHTTPS(v bool) *AwsElasticsearchDomainDomainEndpointOptions { + s.EnforceHTTPS = &v + return s +} - // The type of DB cluster snapshot. - SnapshotType *string `type:"string"` +// SetTLSSecurityPolicy sets the TLSSecurityPolicy field's value. +func (s *AwsElasticsearchDomainDomainEndpointOptions) SetTLSSecurityPolicy(v string) *AwsElasticsearchDomainDomainEndpointOptions { + s.TLSSecurityPolicy = &v + return s +} - // The status of this DB cluster snapshot. - Status *string `type:"string"` +// Details about the configuration for encryption at rest. +type AwsElasticsearchDomainEncryptionAtRestOptions struct { + _ struct{} `type:"structure"` - // Whether the DB cluster is encrypted. - StorageEncrypted *bool `type:"boolean"` + // Whether encryption at rest is enabled. + Enabled *bool `type:"boolean"` - // The VPC ID that is associated with the DB cluster snapshot. - VpcId *string `type:"string"` + // The KMS key ID. Takes the form 1a2a3a4-1a2a-3a4a-5a6a-1a2a3a4a5a6a. + KmsKeyId *string `type:"string"` } // String returns the string representation -func (s AwsRdsDbClusterSnapshotDetails) String() string { +func (s AwsElasticsearchDomainEncryptionAtRestOptions) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsRdsDbClusterSnapshotDetails) GoString() string { +func (s AwsElasticsearchDomainEncryptionAtRestOptions) GoString() string { return s.String() } -// SetAllocatedStorage sets the AllocatedStorage field's value. -func (s *AwsRdsDbClusterSnapshotDetails) SetAllocatedStorage(v int64) *AwsRdsDbClusterSnapshotDetails { - s.AllocatedStorage = &v +// SetEnabled sets the Enabled field's value. +func (s *AwsElasticsearchDomainEncryptionAtRestOptions) SetEnabled(v bool) *AwsElasticsearchDomainEncryptionAtRestOptions { + s.Enabled = &v return s } -// SetAvailabilityZones sets the AvailabilityZones field's value. -func (s *AwsRdsDbClusterSnapshotDetails) SetAvailabilityZones(v []*string) *AwsRdsDbClusterSnapshotDetails { - s.AvailabilityZones = v +// SetKmsKeyId sets the KmsKeyId field's value. +func (s *AwsElasticsearchDomainEncryptionAtRestOptions) SetKmsKeyId(v string) *AwsElasticsearchDomainEncryptionAtRestOptions { + s.KmsKeyId = &v return s } -// SetClusterCreateTime sets the ClusterCreateTime field's value. -func (s *AwsRdsDbClusterSnapshotDetails) SetClusterCreateTime(v string) *AwsRdsDbClusterSnapshotDetails { - s.ClusterCreateTime = &v - return s +// Details about the configuration for node-to-node encryption. +type AwsElasticsearchDomainNodeToNodeEncryptionOptions struct { + _ struct{} `type:"structure"` + + // Whether node-to-node encryption is enabled. + Enabled *bool `type:"boolean"` } -// SetDbClusterIdentifier sets the DbClusterIdentifier field's value. -func (s *AwsRdsDbClusterSnapshotDetails) SetDbClusterIdentifier(v string) *AwsRdsDbClusterSnapshotDetails { - s.DbClusterIdentifier = &v - return s +// String returns the string representation +func (s AwsElasticsearchDomainNodeToNodeEncryptionOptions) String() string { + return awsutil.Prettify(s) } -// SetDbClusterSnapshotIdentifier sets the DbClusterSnapshotIdentifier field's value. -func (s *AwsRdsDbClusterSnapshotDetails) SetDbClusterSnapshotIdentifier(v string) *AwsRdsDbClusterSnapshotDetails { - s.DbClusterSnapshotIdentifier = &v - return s +// GoString returns the string representation +func (s AwsElasticsearchDomainNodeToNodeEncryptionOptions) GoString() string { + return s.String() } -// SetEngine sets the Engine field's value. -func (s *AwsRdsDbClusterSnapshotDetails) SetEngine(v string) *AwsRdsDbClusterSnapshotDetails { - s.Engine = &v +// SetEnabled sets the Enabled field's value. +func (s *AwsElasticsearchDomainNodeToNodeEncryptionOptions) SetEnabled(v bool) *AwsElasticsearchDomainNodeToNodeEncryptionOptions { + s.Enabled = &v return s } -// SetEngineVersion sets the EngineVersion field's value. -func (s *AwsRdsDbClusterSnapshotDetails) SetEngineVersion(v string) *AwsRdsDbClusterSnapshotDetails { - s.EngineVersion = &v - return s +// Information that Amazon ES derives based on VPCOptions for the domain. +type AwsElasticsearchDomainVPCOptions struct { + _ struct{} `type:"structure"` + + // The list of Availability Zones associated with the VPC subnets. + AvailabilityZones []*string `type:"list"` + + // The list of security group IDs associated with the VPC endpoints for the + // domain. + SecurityGroupIds []*string `type:"list"` + + // A list of subnet IDs associated with the VPC endpoints for the domain. + SubnetIds []*string `type:"list"` + + // ID for the VPC. + VPCId *string `type:"string"` } -// SetIamDatabaseAuthenticationEnabled sets the IamDatabaseAuthenticationEnabled field's value. -func (s *AwsRdsDbClusterSnapshotDetails) SetIamDatabaseAuthenticationEnabled(v bool) *AwsRdsDbClusterSnapshotDetails { - s.IamDatabaseAuthenticationEnabled = &v - return s +// String returns the string representation +func (s AwsElasticsearchDomainVPCOptions) String() string { + return awsutil.Prettify(s) } -// SetKmsKeyId sets the KmsKeyId field's value. -func (s *AwsRdsDbClusterSnapshotDetails) SetKmsKeyId(v string) *AwsRdsDbClusterSnapshotDetails { - s.KmsKeyId = &v - return s +// GoString returns the string representation +func (s AwsElasticsearchDomainVPCOptions) GoString() string { + return s.String() } -// SetLicenseModel sets the LicenseModel field's value. -func (s *AwsRdsDbClusterSnapshotDetails) SetLicenseModel(v string) *AwsRdsDbClusterSnapshotDetails { - s.LicenseModel = &v +// SetAvailabilityZones sets the AvailabilityZones field's value. +func (s *AwsElasticsearchDomainVPCOptions) SetAvailabilityZones(v []*string) *AwsElasticsearchDomainVPCOptions { + s.AvailabilityZones = v return s } -// SetMasterUsername sets the MasterUsername field's value. -func (s *AwsRdsDbClusterSnapshotDetails) SetMasterUsername(v string) *AwsRdsDbClusterSnapshotDetails { - s.MasterUsername = &v +// SetSecurityGroupIds sets the SecurityGroupIds field's value. +func (s *AwsElasticsearchDomainVPCOptions) SetSecurityGroupIds(v []*string) *AwsElasticsearchDomainVPCOptions { + s.SecurityGroupIds = v return s } -// SetPercentProgress sets the PercentProgress field's value. -func (s *AwsRdsDbClusterSnapshotDetails) SetPercentProgress(v int64) *AwsRdsDbClusterSnapshotDetails { - s.PercentProgress = &v +// SetSubnetIds sets the SubnetIds field's value. +func (s *AwsElasticsearchDomainVPCOptions) SetSubnetIds(v []*string) *AwsElasticsearchDomainVPCOptions { + s.SubnetIds = v return s } -// SetPort sets the Port field's value. -func (s *AwsRdsDbClusterSnapshotDetails) SetPort(v int64) *AwsRdsDbClusterSnapshotDetails { - s.Port = &v +// SetVPCId sets the VPCId field's value. +func (s *AwsElasticsearchDomainVPCOptions) SetVPCId(v string) *AwsElasticsearchDomainVPCOptions { + s.VPCId = &v return s } -// SetSnapshotCreateTime sets the SnapshotCreateTime field's value. -func (s *AwsRdsDbClusterSnapshotDetails) SetSnapshotCreateTime(v string) *AwsRdsDbClusterSnapshotDetails { - s.SnapshotCreateTime = &v - return s +// Contains information about a stickiness policy that was created using CreateAppCookieStickinessPolicy. +type AwsElbAppCookieStickinessPolicy struct { + _ struct{} `type:"structure"` + + // The name of the application cookie used for stickiness. + CookieName *string `type:"string"` + + // The mnemonic name for the policy being created. The name must be unique within + // the set of policies for the load balancer. + PolicyName *string `type:"string"` } -// SetSnapshotType sets the SnapshotType field's value. -func (s *AwsRdsDbClusterSnapshotDetails) SetSnapshotType(v string) *AwsRdsDbClusterSnapshotDetails { - s.SnapshotType = &v - return s +// String returns the string representation +func (s AwsElbAppCookieStickinessPolicy) String() string { + return awsutil.Prettify(s) } -// SetStatus sets the Status field's value. -func (s *AwsRdsDbClusterSnapshotDetails) SetStatus(v string) *AwsRdsDbClusterSnapshotDetails { - s.Status = &v - return s +// GoString returns the string representation +func (s AwsElbAppCookieStickinessPolicy) GoString() string { + return s.String() } -// SetStorageEncrypted sets the StorageEncrypted field's value. -func (s *AwsRdsDbClusterSnapshotDetails) SetStorageEncrypted(v bool) *AwsRdsDbClusterSnapshotDetails { - s.StorageEncrypted = &v +// SetCookieName sets the CookieName field's value. +func (s *AwsElbAppCookieStickinessPolicy) SetCookieName(v string) *AwsElbAppCookieStickinessPolicy { + s.CookieName = &v return s } -// SetVpcId sets the VpcId field's value. -func (s *AwsRdsDbClusterSnapshotDetails) SetVpcId(v string) *AwsRdsDbClusterSnapshotDetails { - s.VpcId = &v +// SetPolicyName sets the PolicyName field's value. +func (s *AwsElbAppCookieStickinessPolicy) SetPolicyName(v string) *AwsElbAppCookieStickinessPolicy { + s.PolicyName = &v return s } -// Information about an Active Directory domain membership record associated -// with the DB instance. -type AwsRdsDbDomainMembership struct { +// Contains information about a stickiness policy that was created using CreateLBCookieStickinessPolicy. +type AwsElbLbCookieStickinessPolicy struct { _ struct{} `type:"structure"` - // The identifier of the Active Directory domain. - Domain *string `type:"string"` - - // The fully qualified domain name of the Active Directory domain. - Fqdn *string `type:"string"` - - // The name of the IAM role to use when making API calls to the Directory Service. - IamRoleName *string `type:"string"` + // The amount of time, in seconds, after which the cookie is considered stale. + // If an expiration period is not specified, the stickiness session lasts for + // the duration of the browser session. + CookieExpirationPeriod *int64 `type:"long"` - // The status of the Active Directory Domain membership for the DB instance. - Status *string `type:"string"` + // The name of the policy. The name must be unique within the set of policies + // for the load balancer. + PolicyName *string `type:"string"` } // String returns the string representation -func (s AwsRdsDbDomainMembership) String() string { +func (s AwsElbLbCookieStickinessPolicy) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsRdsDbDomainMembership) GoString() string { +func (s AwsElbLbCookieStickinessPolicy) GoString() string { return s.String() } -// SetDomain sets the Domain field's value. -func (s *AwsRdsDbDomainMembership) SetDomain(v string) *AwsRdsDbDomainMembership { - s.Domain = &v +// SetCookieExpirationPeriod sets the CookieExpirationPeriod field's value. +func (s *AwsElbLbCookieStickinessPolicy) SetCookieExpirationPeriod(v int64) *AwsElbLbCookieStickinessPolicy { + s.CookieExpirationPeriod = &v return s } -// SetFqdn sets the Fqdn field's value. -func (s *AwsRdsDbDomainMembership) SetFqdn(v string) *AwsRdsDbDomainMembership { - s.Fqdn = &v +// SetPolicyName sets the PolicyName field's value. +func (s *AwsElbLbCookieStickinessPolicy) SetPolicyName(v string) *AwsElbLbCookieStickinessPolicy { + s.PolicyName = &v return s } -// SetIamRoleName sets the IamRoleName field's value. -func (s *AwsRdsDbDomainMembership) SetIamRoleName(v string) *AwsRdsDbDomainMembership { - s.IamRoleName = &v +// Contains information about the access log configuration for the load balancer. +type AwsElbLoadBalancerAccessLog struct { + _ struct{} `type:"structure"` + + // The interval in minutes for publishing the access logs. + // + // You can publish access logs either every 5 minutes or every 60 minutes. + EmitInterval *int64 `type:"integer"` + + // Indicates whether access logs are enabled for the load balancer. + Enabled *bool `type:"boolean"` + + // The name of the S3 bucket where the access logs are stored. + S3BucketName *string `type:"string"` + + // The logical hierarchy that was created for the S3 bucket. + // + // If a prefix is not provided, the log is placed at the root level of the bucket. + S3BucketPrefix *string `type:"string"` +} + +// String returns the string representation +func (s AwsElbLoadBalancerAccessLog) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsElbLoadBalancerAccessLog) GoString() string { + return s.String() +} + +// SetEmitInterval sets the EmitInterval field's value. +func (s *AwsElbLoadBalancerAccessLog) SetEmitInterval(v int64) *AwsElbLoadBalancerAccessLog { + s.EmitInterval = &v return s } -// SetStatus sets the Status field's value. -func (s *AwsRdsDbDomainMembership) SetStatus(v string) *AwsRdsDbDomainMembership { - s.Status = &v +// SetEnabled sets the Enabled field's value. +func (s *AwsElbLoadBalancerAccessLog) SetEnabled(v bool) *AwsElbLoadBalancerAccessLog { + s.Enabled = &v return s } -// An AWS Identity and Access Management (IAM) role associated with the DB instance. -type AwsRdsDbInstanceAssociatedRole struct { - _ struct{} `type:"structure"` +// SetS3BucketName sets the S3BucketName field's value. +func (s *AwsElbLoadBalancerAccessLog) SetS3BucketName(v string) *AwsElbLoadBalancerAccessLog { + s.S3BucketName = &v + return s +} - // The name of the feature associated with the IAM)role. - FeatureName *string `type:"string"` +// SetS3BucketPrefix sets the S3BucketPrefix field's value. +func (s *AwsElbLoadBalancerAccessLog) SetS3BucketPrefix(v string) *AwsElbLoadBalancerAccessLog { + s.S3BucketPrefix = &v + return s +} - // The Amazon Resource Name (ARN) of the IAM role that is associated with the - // DB instance. - RoleArn *string `type:"string"` +// Contains attributes for the load balancer. +type AwsElbLoadBalancerAttributes struct { + _ struct{} `type:"structure"` - // Describes the state of the association between the IAM role and the DB instance. - // The Status property returns one of the following values: + // Information about the access log configuration for the load balancer. // - // * ACTIVE - The IAM role ARN is associated with the DB instance and can - // be used to access other AWS services on your behalf. + // If the access log is enabled, the load balancer captures detailed information + // about all requests. It delivers the information to a specified S3 bucket. + AccessLog *AwsElbLoadBalancerAccessLog `type:"structure"` + + // Information about the connection draining configuration for the load balancer. // - // * PENDING - The IAM role ARN is being associated with the DB instance. + // If connection draining is enabled, the load balancer allows existing requests + // to complete before it shifts traffic away from a deregistered or unhealthy + // instance. + ConnectionDraining *AwsElbLoadBalancerConnectionDraining `type:"structure"` + + // Connection settings for the load balancer. // - // * INVALID - The IAM role ARN is associated with the DB instance. But the - // DB instance is unable to assume the IAM role in order to access other - // AWS services on your behalf. - Status *string `type:"string"` + // If an idle timeout is configured, the load balancer allows connections to + // remain idle for the specified duration. When a connection is idle, no data + // is sent over the connection. + ConnectionSettings *AwsElbLoadBalancerConnectionSettings `type:"structure"` + + // Cross-zone load balancing settings for the load balancer. + // + // If cross-zone load balancing is enabled, the load balancer routes the request + // traffic evenly across all instances regardless of the Availability Zones. + CrossZoneLoadBalancing *AwsElbLoadBalancerCrossZoneLoadBalancing `type:"structure"` } // String returns the string representation -func (s AwsRdsDbInstanceAssociatedRole) String() string { +func (s AwsElbLoadBalancerAttributes) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsRdsDbInstanceAssociatedRole) GoString() string { +func (s AwsElbLoadBalancerAttributes) GoString() string { return s.String() } -// SetFeatureName sets the FeatureName field's value. -func (s *AwsRdsDbInstanceAssociatedRole) SetFeatureName(v string) *AwsRdsDbInstanceAssociatedRole { - s.FeatureName = &v +// SetAccessLog sets the AccessLog field's value. +func (s *AwsElbLoadBalancerAttributes) SetAccessLog(v *AwsElbLoadBalancerAccessLog) *AwsElbLoadBalancerAttributes { + s.AccessLog = v return s } -// SetRoleArn sets the RoleArn field's value. -func (s *AwsRdsDbInstanceAssociatedRole) SetRoleArn(v string) *AwsRdsDbInstanceAssociatedRole { - s.RoleArn = &v +// SetConnectionDraining sets the ConnectionDraining field's value. +func (s *AwsElbLoadBalancerAttributes) SetConnectionDraining(v *AwsElbLoadBalancerConnectionDraining) *AwsElbLoadBalancerAttributes { + s.ConnectionDraining = v return s } -// SetStatus sets the Status field's value. -func (s *AwsRdsDbInstanceAssociatedRole) SetStatus(v string) *AwsRdsDbInstanceAssociatedRole { - s.Status = &v +// SetConnectionSettings sets the ConnectionSettings field's value. +func (s *AwsElbLoadBalancerAttributes) SetConnectionSettings(v *AwsElbLoadBalancerConnectionSettings) *AwsElbLoadBalancerAttributes { + s.ConnectionSettings = v return s } -// Contains the details of an Amazon RDS DB instance. -type AwsRdsDbInstanceDetails struct { - _ struct{} `type:"structure"` +// SetCrossZoneLoadBalancing sets the CrossZoneLoadBalancing field's value. +func (s *AwsElbLoadBalancerAttributes) SetCrossZoneLoadBalancing(v *AwsElbLoadBalancerCrossZoneLoadBalancing) *AwsElbLoadBalancerAttributes { + s.CrossZoneLoadBalancing = v + return s +} - // The amount of storage (in gigabytes) to initially allocate for the DB instance. - AllocatedStorage *int64 `type:"integer"` +// Provides information about the configuration of an EC2 instance for the load +// balancer. +type AwsElbLoadBalancerBackendServerDescription struct { + _ struct{} `type:"structure"` - // The AWS Identity and Access Management (IAM) roles associated with the DB - // instance. - AssociatedRoles []*AwsRdsDbInstanceAssociatedRole `type:"list"` + // The port on which the EC2 instance is listening. + InstancePort *int64 `type:"integer"` - // Indicates whether minor version patches are applied automatically. - AutoMinorVersionUpgrade *bool `type:"boolean"` + // The names of the policies that are enabled for the EC2 instance. + PolicyNames []*string `type:"list"` +} - // The Availability Zone where the DB instance will be created. - AvailabilityZone *string `type:"string"` +// String returns the string representation +func (s AwsElbLoadBalancerBackendServerDescription) String() string { + return awsutil.Prettify(s) +} - // The number of days for which to retain automated backups. - BackupRetentionPeriod *int64 `type:"integer"` +// GoString returns the string representation +func (s AwsElbLoadBalancerBackendServerDescription) GoString() string { + return s.String() +} - // The identifier of the CA certificate for this DB instance. - CACertificateIdentifier *string `type:"string"` +// SetInstancePort sets the InstancePort field's value. +func (s *AwsElbLoadBalancerBackendServerDescription) SetInstancePort(v int64) *AwsElbLoadBalancerBackendServerDescription { + s.InstancePort = &v + return s +} - // The name of the character set that this DB instance is associated with. - CharacterSetName *string `type:"string"` +// SetPolicyNames sets the PolicyNames field's value. +func (s *AwsElbLoadBalancerBackendServerDescription) SetPolicyNames(v []*string) *AwsElbLoadBalancerBackendServerDescription { + s.PolicyNames = v + return s +} - // Whether to copy resource tags to snapshots of the DB instance. - CopyTagsToSnapshot *bool `type:"boolean"` +// Contains information about the connection draining configuration for the +// load balancer. +type AwsElbLoadBalancerConnectionDraining struct { + _ struct{} `type:"structure"` - // If the DB instance is a member of a DB cluster, contains the name of the - // DB cluster that the DB instance is a member of. - DBClusterIdentifier *string `type:"string"` + // Indicates whether connection draining is enabled for the load balancer. + Enabled *bool `type:"boolean"` - // Contains the name of the compute and memory capacity class of the DB instance. - DBInstanceClass *string `type:"string"` + // The maximum time, in seconds, to keep the existing connections open before + // deregistering the instances. + Timeout *int64 `type:"integer"` +} - // Contains a user-supplied database identifier. This identifier is the unique - // key that identifies a DB instance. - DBInstanceIdentifier *string `type:"string"` +// String returns the string representation +func (s AwsElbLoadBalancerConnectionDraining) String() string { + return awsutil.Prettify(s) +} - // The meaning of this parameter differs according to the database engine you - // use. - // - // MySQL, MariaDB, SQL Server, PostgreSQL - // - // Contains the name of the initial database of this instance that was provided - // at create time, if one was specified when the DB instance was created. This - // same name is returned for the life of the DB instance. - // - // Oracle - // - // Contains the Oracle System ID (SID) of the created DB instance. Not shown - // when the returned parameters do not apply to an Oracle DB instance. - DBName *string `type:"string"` +// GoString returns the string representation +func (s AwsElbLoadBalancerConnectionDraining) GoString() string { + return s.String() +} - // Specifies the port that the DB instance listens on. If the DB instance is - // part of a DB cluster, this can be a different port than the DB cluster port. - DbInstancePort *int64 `type:"integer"` +// SetEnabled sets the Enabled field's value. +func (s *AwsElbLoadBalancerConnectionDraining) SetEnabled(v bool) *AwsElbLoadBalancerConnectionDraining { + s.Enabled = &v + return s +} - // The current status of the DB instance. - DbInstanceStatus *string `type:"string"` +// SetTimeout sets the Timeout field's value. +func (s *AwsElbLoadBalancerConnectionDraining) SetTimeout(v int64) *AwsElbLoadBalancerConnectionDraining { + s.Timeout = &v + return s +} - // A list of the DB parameter groups to assign to the DB instance. - DbParameterGroups []*AwsRdsDbParameterGroup `type:"list"` +// Contains connection settings for the load balancer. +type AwsElbLoadBalancerConnectionSettings struct { + _ struct{} `type:"structure"` - // A list of the DB security groups to assign to the DB instance. - DbSecurityGroups []*string `type:"list"` + // The time, in seconds, that the connection can be idle (no data is sent over + // the connection) before it is closed by the load balancer. + IdleTimeout *int64 `type:"integer"` +} - // Information about the subnet group that is associated with the DB instance. - DbSubnetGroup *AwsRdsDbSubnetGroup `type:"structure"` +// String returns the string representation +func (s AwsElbLoadBalancerConnectionSettings) String() string { + return awsutil.Prettify(s) +} - // The AWS Region-unique, immutable identifier for the DB instance. This identifier - // is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB - // instance is accessed. - DbiResourceId *string `type:"string"` +// GoString returns the string representation +func (s AwsElbLoadBalancerConnectionSettings) GoString() string { + return s.String() +} - // Indicates whether the DB instance has deletion protection enabled. - // - // When deletion protection is enabled, the database cannot be deleted. - DeletionProtection *bool `type:"boolean"` +// SetIdleTimeout sets the IdleTimeout field's value. +func (s *AwsElbLoadBalancerConnectionSettings) SetIdleTimeout(v int64) *AwsElbLoadBalancerConnectionSettings { + s.IdleTimeout = &v + return s +} - // The Active Directory domain membership records associated with the DB instance. - DomainMemberships []*AwsRdsDbDomainMembership `type:"list"` +// Contains cross-zone load balancing settings for the load balancer. +type AwsElbLoadBalancerCrossZoneLoadBalancing struct { + _ struct{} `type:"structure"` - // A list of log types that this DB instance is configured to export to CloudWatch - // Logs. - EnabledCloudWatchLogsExports []*string `type:"list"` + // Indicates whether cross-zone load balancing is enabled for the load balancer. + Enabled *bool `type:"boolean"` +} - // Specifies the connection endpoint. - Endpoint *AwsRdsDbInstanceEndpoint `type:"structure"` +// String returns the string representation +func (s AwsElbLoadBalancerCrossZoneLoadBalancing) String() string { + return awsutil.Prettify(s) +} - // Provides the name of the database engine to use for this DB instance. - Engine *string `type:"string"` +// GoString returns the string representation +func (s AwsElbLoadBalancerCrossZoneLoadBalancing) GoString() string { + return s.String() +} - // Indicates the database engine version. - EngineVersion *string `type:"string"` +// SetEnabled sets the Enabled field's value. +func (s *AwsElbLoadBalancerCrossZoneLoadBalancing) SetEnabled(v bool) *AwsElbLoadBalancerCrossZoneLoadBalancing { + s.Enabled = &v + return s +} - // The ARN of the CloudWatch Logs log stream that receives the enhanced monitoring - // metrics data for the DB instance. - EnhancedMonitoringResourceArn *string `type:"string"` +// Contains details about a Classic Load Balancer. +type AwsElbLoadBalancerDetails struct { + _ struct{} `type:"structure"` - // True if mapping of AWS Identity and Access Management (IAM) accounts to database - // accounts is enabled, and otherwise false. - // - // IAM database authentication can be enabled for the following database engines. - // - // * For MySQL 5.6, minor version 5.6.34 or higher - // - // * For MySQL 5.7, minor version 5.7.16 or higher - // - // * Aurora 5.6 or higher - IAMDatabaseAuthenticationEnabled *bool `type:"boolean"` + // The list of Availability Zones for the load balancer. + AvailabilityZones []*string `type:"list"` - // Indicates when the DB instance was created. - // - // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time - // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot - // contain spaces. For example, 2020-03-22T13:22:13.933Z. - InstanceCreateTime *string `type:"string"` + // Information about the configuration of the EC2 instances. + BackendServerDescriptions []*AwsElbLoadBalancerBackendServerDescription `type:"list"` - // Specifies the provisioned IOPS (I/O operations per second) for this DB instance. - Iops *int64 `type:"integer"` + // The name of the Amazon Route 53 hosted zone for the load balancer. + CanonicalHostedZoneName *string `type:"string"` - // If StorageEncrypted is true, the AWS KMS key identifier for the encrypted - // DB instance. - KmsKeyId *string `type:"string"` + // The ID of the Amazon Route 53 hosted zone for the load balancer. + CanonicalHostedZoneNameID *string `type:"string"` - // Specifies the latest time to which a database can be restored with point-in-time - // restore. + // Indicates when the load balancer was created. // // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot // contain spaces. For example, 2020-03-22T13:22:13.933Z. - LatestRestorableTime *string `type:"string"` + CreatedTime *string `type:"string"` - // License model information for this DB instance. - LicenseModel *string `type:"string"` + // The DNS name of the load balancer. + DnsName *string `type:"string"` - // Specifies the connection endpoint. - ListenerEndpoint *AwsRdsDbInstanceEndpoint `type:"structure"` + // Information about the health checks that are conducted on the load balancer. + HealthCheck *AwsElbLoadBalancerHealthCheck `type:"structure"` - // The master user name of the DB instance. - MasterUsername *string `type:"string"` + // List of EC2 instances for the load balancer. + Instances []*AwsElbLoadBalancerInstance `type:"list"` - // The upper limit to which Amazon RDS can automatically scale the storage of - // the DB instance. - MaxAllocatedStorage *int64 `type:"integer"` + // The policies that are enabled for the load balancer listeners. + ListenerDescriptions []*AwsElbLoadBalancerListenerDescription `type:"list"` - // The interval, in seconds, between points when enhanced monitoring metrics - // are collected for the DB instance. - MonitoringInterval *int64 `type:"integer"` + // The attributes for a load balancer. + LoadBalancerAttributes *AwsElbLoadBalancerAttributes `type:"structure"` - // The ARN for the IAM role that permits Amazon RDS to send enhanced monitoring - // metrics to CloudWatch Logs. - MonitoringRoleArn *string `type:"string"` + // The name of the load balancer. + LoadBalancerName *string `type:"string"` - // Whether the DB instance is a multiple Availability Zone deployment. - MultiAz *bool `type:"boolean"` + // The policies for a load balancer. + Policies *AwsElbLoadBalancerPolicies `type:"structure"` - // The list of option group memberships for this DB instance. - OptionGroupMemberships []*AwsRdsDbOptionGroupMembership `type:"list"` + // The type of load balancer. Only provided if the load balancer is in a VPC. + // + // If Scheme is internet-facing, the load balancer has a public DNS name that + // resolves to a public IP address. + // + // If Scheme is internal, the load balancer has a public DNS name that resolves + // to a private IP address. + Scheme *string `type:"string"` - // Changes to the DB instance that are currently pending. - PendingModifiedValues *AwsRdsDbPendingModifiedValues `type:"structure"` + // The security groups for the load balancer. Only provided if the load balancer + // is in a VPC. + SecurityGroups []*string `type:"list"` - // Indicates whether Performance Insights is enabled for the DB instance. - PerformanceInsightsEnabled *bool `type:"boolean"` + // Information about the security group for the load balancer. This is the security + // group that is used for inbound rules. + SourceSecurityGroup *AwsElbLoadBalancerSourceSecurityGroup `type:"structure"` + + // The list of subnet identifiers for the load balancer. + Subnets []*string `type:"list"` + + // The identifier of the VPC for the load balancer. + VpcId *string `type:"string"` +} + +// String returns the string representation +func (s AwsElbLoadBalancerDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsElbLoadBalancerDetails) GoString() string { + return s.String() +} + +// SetAvailabilityZones sets the AvailabilityZones field's value. +func (s *AwsElbLoadBalancerDetails) SetAvailabilityZones(v []*string) *AwsElbLoadBalancerDetails { + s.AvailabilityZones = v + return s +} + +// SetBackendServerDescriptions sets the BackendServerDescriptions field's value. +func (s *AwsElbLoadBalancerDetails) SetBackendServerDescriptions(v []*AwsElbLoadBalancerBackendServerDescription) *AwsElbLoadBalancerDetails { + s.BackendServerDescriptions = v + return s +} + +// SetCanonicalHostedZoneName sets the CanonicalHostedZoneName field's value. +func (s *AwsElbLoadBalancerDetails) SetCanonicalHostedZoneName(v string) *AwsElbLoadBalancerDetails { + s.CanonicalHostedZoneName = &v + return s +} + +// SetCanonicalHostedZoneNameID sets the CanonicalHostedZoneNameID field's value. +func (s *AwsElbLoadBalancerDetails) SetCanonicalHostedZoneNameID(v string) *AwsElbLoadBalancerDetails { + s.CanonicalHostedZoneNameID = &v + return s +} + +// SetCreatedTime sets the CreatedTime field's value. +func (s *AwsElbLoadBalancerDetails) SetCreatedTime(v string) *AwsElbLoadBalancerDetails { + s.CreatedTime = &v + return s +} + +// SetDnsName sets the DnsName field's value. +func (s *AwsElbLoadBalancerDetails) SetDnsName(v string) *AwsElbLoadBalancerDetails { + s.DnsName = &v + return s +} + +// SetHealthCheck sets the HealthCheck field's value. +func (s *AwsElbLoadBalancerDetails) SetHealthCheck(v *AwsElbLoadBalancerHealthCheck) *AwsElbLoadBalancerDetails { + s.HealthCheck = v + return s +} + +// SetInstances sets the Instances field's value. +func (s *AwsElbLoadBalancerDetails) SetInstances(v []*AwsElbLoadBalancerInstance) *AwsElbLoadBalancerDetails { + s.Instances = v + return s +} + +// SetListenerDescriptions sets the ListenerDescriptions field's value. +func (s *AwsElbLoadBalancerDetails) SetListenerDescriptions(v []*AwsElbLoadBalancerListenerDescription) *AwsElbLoadBalancerDetails { + s.ListenerDescriptions = v + return s +} + +// SetLoadBalancerAttributes sets the LoadBalancerAttributes field's value. +func (s *AwsElbLoadBalancerDetails) SetLoadBalancerAttributes(v *AwsElbLoadBalancerAttributes) *AwsElbLoadBalancerDetails { + s.LoadBalancerAttributes = v + return s +} + +// SetLoadBalancerName sets the LoadBalancerName field's value. +func (s *AwsElbLoadBalancerDetails) SetLoadBalancerName(v string) *AwsElbLoadBalancerDetails { + s.LoadBalancerName = &v + return s +} + +// SetPolicies sets the Policies field's value. +func (s *AwsElbLoadBalancerDetails) SetPolicies(v *AwsElbLoadBalancerPolicies) *AwsElbLoadBalancerDetails { + s.Policies = v + return s +} + +// SetScheme sets the Scheme field's value. +func (s *AwsElbLoadBalancerDetails) SetScheme(v string) *AwsElbLoadBalancerDetails { + s.Scheme = &v + return s +} + +// SetSecurityGroups sets the SecurityGroups field's value. +func (s *AwsElbLoadBalancerDetails) SetSecurityGroups(v []*string) *AwsElbLoadBalancerDetails { + s.SecurityGroups = v + return s +} + +// SetSourceSecurityGroup sets the SourceSecurityGroup field's value. +func (s *AwsElbLoadBalancerDetails) SetSourceSecurityGroup(v *AwsElbLoadBalancerSourceSecurityGroup) *AwsElbLoadBalancerDetails { + s.SourceSecurityGroup = v + return s +} + +// SetSubnets sets the Subnets field's value. +func (s *AwsElbLoadBalancerDetails) SetSubnets(v []*string) *AwsElbLoadBalancerDetails { + s.Subnets = v + return s +} + +// SetVpcId sets the VpcId field's value. +func (s *AwsElbLoadBalancerDetails) SetVpcId(v string) *AwsElbLoadBalancerDetails { + s.VpcId = &v + return s +} + +// Contains information about the health checks that are conducted on the load +// balancer. +type AwsElbLoadBalancerHealthCheck struct { + _ struct{} `type:"structure"` + + // The number of consecutive health check successes required before the instance + // is moved to the Healthy state. + HealthyThreshold *int64 `type:"integer"` + + // The approximate interval, in seconds, between health checks of an individual + // instance. + Interval *int64 `type:"integer"` + + // The instance that is being checked. The target specifies the protocol and + // port. The available protocols are TCP, SSL, HTTP, and HTTPS. The range of + // valid ports is 1 through 65535. + // + // For the HTTP and HTTPS protocols, the target also specifies the ping path. + // + // For the TCP protocol, the target is specified as TCP: . + // + // For the SSL protocol, the target is specified as SSL. . + // + // For the HTTP and HTTPS protocols, the target is specified as :/ . + Target *string `type:"string"` + + // The amount of time, in seconds, during which no response means a failed health + // check. + Timeout *int64 `type:"integer"` + + // The number of consecutive health check failures that must occur before the + // instance is moved to the Unhealthy state. + UnhealthyThreshold *int64 `type:"integer"` +} + +// String returns the string representation +func (s AwsElbLoadBalancerHealthCheck) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsElbLoadBalancerHealthCheck) GoString() string { + return s.String() +} + +// SetHealthyThreshold sets the HealthyThreshold field's value. +func (s *AwsElbLoadBalancerHealthCheck) SetHealthyThreshold(v int64) *AwsElbLoadBalancerHealthCheck { + s.HealthyThreshold = &v + return s +} + +// SetInterval sets the Interval field's value. +func (s *AwsElbLoadBalancerHealthCheck) SetInterval(v int64) *AwsElbLoadBalancerHealthCheck { + s.Interval = &v + return s +} + +// SetTarget sets the Target field's value. +func (s *AwsElbLoadBalancerHealthCheck) SetTarget(v string) *AwsElbLoadBalancerHealthCheck { + s.Target = &v + return s +} + +// SetTimeout sets the Timeout field's value. +func (s *AwsElbLoadBalancerHealthCheck) SetTimeout(v int64) *AwsElbLoadBalancerHealthCheck { + s.Timeout = &v + return s +} + +// SetUnhealthyThreshold sets the UnhealthyThreshold field's value. +func (s *AwsElbLoadBalancerHealthCheck) SetUnhealthyThreshold(v int64) *AwsElbLoadBalancerHealthCheck { + s.UnhealthyThreshold = &v + return s +} + +// Provides information about an EC2 instance for a load balancer. +type AwsElbLoadBalancerInstance struct { + _ struct{} `type:"structure"` + + // The instance identifier. + InstanceId *string `type:"string"` +} + +// String returns the string representation +func (s AwsElbLoadBalancerInstance) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsElbLoadBalancerInstance) GoString() string { + return s.String() +} + +// SetInstanceId sets the InstanceId field's value. +func (s *AwsElbLoadBalancerInstance) SetInstanceId(v string) *AwsElbLoadBalancerInstance { + s.InstanceId = &v + return s +} + +// Information about a load balancer listener. +type AwsElbLoadBalancerListener struct { + _ struct{} `type:"structure"` + + // The port on which the instance is listening. + InstancePort *int64 `type:"integer"` + + // The protocol to use to route traffic to instances. + // + // Valid values: HTTP | HTTPS | TCP | SSL + InstanceProtocol *string `type:"string"` + + // The port on which the load balancer is listening. + // + // On EC2-VPC, you can specify any port from the range 1-65535. + // + // On EC2-Classic, you can specify any port from the following list: 25, 80, + // 443, 465, 587, 1024-65535. + LoadBalancerPort *int64 `type:"integer"` + + // The load balancer transport protocol to use for routing. + // + // Valid values: HTTP | HTTPS | TCP | SSL + Protocol *string `type:"string"` + + // The ARN of the server certificate. + SslCertificateId *string `type:"string"` +} + +// String returns the string representation +func (s AwsElbLoadBalancerListener) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsElbLoadBalancerListener) GoString() string { + return s.String() +} + +// SetInstancePort sets the InstancePort field's value. +func (s *AwsElbLoadBalancerListener) SetInstancePort(v int64) *AwsElbLoadBalancerListener { + s.InstancePort = &v + return s +} + +// SetInstanceProtocol sets the InstanceProtocol field's value. +func (s *AwsElbLoadBalancerListener) SetInstanceProtocol(v string) *AwsElbLoadBalancerListener { + s.InstanceProtocol = &v + return s +} + +// SetLoadBalancerPort sets the LoadBalancerPort field's value. +func (s *AwsElbLoadBalancerListener) SetLoadBalancerPort(v int64) *AwsElbLoadBalancerListener { + s.LoadBalancerPort = &v + return s +} + +// SetProtocol sets the Protocol field's value. +func (s *AwsElbLoadBalancerListener) SetProtocol(v string) *AwsElbLoadBalancerListener { + s.Protocol = &v + return s +} + +// SetSslCertificateId sets the SslCertificateId field's value. +func (s *AwsElbLoadBalancerListener) SetSslCertificateId(v string) *AwsElbLoadBalancerListener { + s.SslCertificateId = &v + return s +} + +// Lists the policies that are enabled for a load balancer listener. +type AwsElbLoadBalancerListenerDescription struct { + _ struct{} `type:"structure"` + + // Information about the listener. + Listener *AwsElbLoadBalancerListener `type:"structure"` + + // The policies enabled for the listener. + PolicyNames []*string `type:"list"` +} + +// String returns the string representation +func (s AwsElbLoadBalancerListenerDescription) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsElbLoadBalancerListenerDescription) GoString() string { + return s.String() +} + +// SetListener sets the Listener field's value. +func (s *AwsElbLoadBalancerListenerDescription) SetListener(v *AwsElbLoadBalancerListener) *AwsElbLoadBalancerListenerDescription { + s.Listener = v + return s +} + +// SetPolicyNames sets the PolicyNames field's value. +func (s *AwsElbLoadBalancerListenerDescription) SetPolicyNames(v []*string) *AwsElbLoadBalancerListenerDescription { + s.PolicyNames = v + return s +} + +// Contains information about the policies for a load balancer. +type AwsElbLoadBalancerPolicies struct { + _ struct{} `type:"structure"` + + // The stickiness policies that are created using CreateAppCookieStickinessPolicy. + AppCookieStickinessPolicies []*AwsElbAppCookieStickinessPolicy `type:"list"` + + // The stickiness policies that are created using CreateLBCookieStickinessPolicy. + LbCookieStickinessPolicies []*AwsElbLbCookieStickinessPolicy `type:"list"` + + // The policies other than the stickiness policies. + OtherPolicies []*string `type:"list"` +} + +// String returns the string representation +func (s AwsElbLoadBalancerPolicies) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsElbLoadBalancerPolicies) GoString() string { + return s.String() +} + +// SetAppCookieStickinessPolicies sets the AppCookieStickinessPolicies field's value. +func (s *AwsElbLoadBalancerPolicies) SetAppCookieStickinessPolicies(v []*AwsElbAppCookieStickinessPolicy) *AwsElbLoadBalancerPolicies { + s.AppCookieStickinessPolicies = v + return s +} + +// SetLbCookieStickinessPolicies sets the LbCookieStickinessPolicies field's value. +func (s *AwsElbLoadBalancerPolicies) SetLbCookieStickinessPolicies(v []*AwsElbLbCookieStickinessPolicy) *AwsElbLoadBalancerPolicies { + s.LbCookieStickinessPolicies = v + return s +} + +// SetOtherPolicies sets the OtherPolicies field's value. +func (s *AwsElbLoadBalancerPolicies) SetOtherPolicies(v []*string) *AwsElbLoadBalancerPolicies { + s.OtherPolicies = v + return s +} + +// Contains information about the security group for the load balancer. +type AwsElbLoadBalancerSourceSecurityGroup struct { + _ struct{} `type:"structure"` + + // The name of the security group. + GroupName *string `type:"string"` + + // The owner of the security group. + OwnerAlias *string `type:"string"` +} + +// String returns the string representation +func (s AwsElbLoadBalancerSourceSecurityGroup) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsElbLoadBalancerSourceSecurityGroup) GoString() string { + return s.String() +} + +// SetGroupName sets the GroupName field's value. +func (s *AwsElbLoadBalancerSourceSecurityGroup) SetGroupName(v string) *AwsElbLoadBalancerSourceSecurityGroup { + s.GroupName = &v + return s +} + +// SetOwnerAlias sets the OwnerAlias field's value. +func (s *AwsElbLoadBalancerSourceSecurityGroup) SetOwnerAlias(v string) *AwsElbLoadBalancerSourceSecurityGroup { + s.OwnerAlias = &v + return s +} + +// Information about a load balancer. +type AwsElbv2LoadBalancerDetails struct { + _ struct{} `type:"structure"` + + // The Availability Zones for the load balancer. + AvailabilityZones []*AvailabilityZone `type:"list"` + + // The ID of the Amazon Route 53 hosted zone associated with the load balancer. + CanonicalHostedZoneId *string `type:"string"` + + // Indicates when the load balancer was created. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + CreatedTime *string `type:"string"` + + // The public DNS name of the load balancer. + DNSName *string `type:"string"` + + // The type of IP addresses used by the subnets for your load balancer. The + // possible values are ipv4 (for IPv4 addresses) and dualstack (for IPv4 and + // IPv6 addresses). + IpAddressType *string `type:"string"` + + // The nodes of an Internet-facing load balancer have public IP addresses. + Scheme *string `type:"string"` + + // The IDs of the security groups for the load balancer. + SecurityGroups []*string `type:"list"` + + // The state of the load balancer. + State *LoadBalancerState `type:"structure"` + + // The type of load balancer. + Type *string `type:"string"` + + // The ID of the VPC for the load balancer. + VpcId *string `type:"string"` +} + +// String returns the string representation +func (s AwsElbv2LoadBalancerDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsElbv2LoadBalancerDetails) GoString() string { + return s.String() +} + +// SetAvailabilityZones sets the AvailabilityZones field's value. +func (s *AwsElbv2LoadBalancerDetails) SetAvailabilityZones(v []*AvailabilityZone) *AwsElbv2LoadBalancerDetails { + s.AvailabilityZones = v + return s +} + +// SetCanonicalHostedZoneId sets the CanonicalHostedZoneId field's value. +func (s *AwsElbv2LoadBalancerDetails) SetCanonicalHostedZoneId(v string) *AwsElbv2LoadBalancerDetails { + s.CanonicalHostedZoneId = &v + return s +} + +// SetCreatedTime sets the CreatedTime field's value. +func (s *AwsElbv2LoadBalancerDetails) SetCreatedTime(v string) *AwsElbv2LoadBalancerDetails { + s.CreatedTime = &v + return s +} + +// SetDNSName sets the DNSName field's value. +func (s *AwsElbv2LoadBalancerDetails) SetDNSName(v string) *AwsElbv2LoadBalancerDetails { + s.DNSName = &v + return s +} + +// SetIpAddressType sets the IpAddressType field's value. +func (s *AwsElbv2LoadBalancerDetails) SetIpAddressType(v string) *AwsElbv2LoadBalancerDetails { + s.IpAddressType = &v + return s +} + +// SetScheme sets the Scheme field's value. +func (s *AwsElbv2LoadBalancerDetails) SetScheme(v string) *AwsElbv2LoadBalancerDetails { + s.Scheme = &v + return s +} + +// SetSecurityGroups sets the SecurityGroups field's value. +func (s *AwsElbv2LoadBalancerDetails) SetSecurityGroups(v []*string) *AwsElbv2LoadBalancerDetails { + s.SecurityGroups = v + return s +} + +// SetState sets the State field's value. +func (s *AwsElbv2LoadBalancerDetails) SetState(v *LoadBalancerState) *AwsElbv2LoadBalancerDetails { + s.State = v + return s +} + +// SetType sets the Type field's value. +func (s *AwsElbv2LoadBalancerDetails) SetType(v string) *AwsElbv2LoadBalancerDetails { + s.Type = &v + return s +} + +// SetVpcId sets the VpcId field's value. +func (s *AwsElbv2LoadBalancerDetails) SetVpcId(v string) *AwsElbv2LoadBalancerDetails { + s.VpcId = &v + return s +} + +// IAM access key details related to a finding. +type AwsIamAccessKeyDetails struct { + _ struct{} `type:"structure"` + + // The identifier of the access key. + AccessKeyId *string `type:"string"` + + // The AWS account ID of the account for the key. + AccountId *string `type:"string"` + + // Indicates when the IAM access key was created. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + CreatedAt *string `type:"string"` + + // The ID of the principal associated with an access key. + PrincipalId *string `type:"string"` + + // The name of the principal. + PrincipalName *string `type:"string"` + + // The type of principal associated with an access key. + PrincipalType *string `type:"string"` + + // Information about the session that the key was used for. + SessionContext *AwsIamAccessKeySessionContext `type:"structure"` + + // The status of the IAM access key related to a finding. + Status *string `type:"string" enum:"AwsIamAccessKeyStatus"` + + // The user associated with the IAM access key related to a finding. + // + // The UserName parameter has been replaced with the PrincipalName parameter + // because access keys can also be assigned to principals that are not IAM users. + // + // Deprecated: This field is deprecated, use PrincipalName instead. + UserName *string `deprecated:"true" type:"string"` +} + +// String returns the string representation +func (s AwsIamAccessKeyDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsIamAccessKeyDetails) GoString() string { + return s.String() +} + +// SetAccessKeyId sets the AccessKeyId field's value. +func (s *AwsIamAccessKeyDetails) SetAccessKeyId(v string) *AwsIamAccessKeyDetails { + s.AccessKeyId = &v + return s +} + +// SetAccountId sets the AccountId field's value. +func (s *AwsIamAccessKeyDetails) SetAccountId(v string) *AwsIamAccessKeyDetails { + s.AccountId = &v + return s +} + +// SetCreatedAt sets the CreatedAt field's value. +func (s *AwsIamAccessKeyDetails) SetCreatedAt(v string) *AwsIamAccessKeyDetails { + s.CreatedAt = &v + return s +} + +// SetPrincipalId sets the PrincipalId field's value. +func (s *AwsIamAccessKeyDetails) SetPrincipalId(v string) *AwsIamAccessKeyDetails { + s.PrincipalId = &v + return s +} + +// SetPrincipalName sets the PrincipalName field's value. +func (s *AwsIamAccessKeyDetails) SetPrincipalName(v string) *AwsIamAccessKeyDetails { + s.PrincipalName = &v + return s +} + +// SetPrincipalType sets the PrincipalType field's value. +func (s *AwsIamAccessKeyDetails) SetPrincipalType(v string) *AwsIamAccessKeyDetails { + s.PrincipalType = &v + return s +} + +// SetSessionContext sets the SessionContext field's value. +func (s *AwsIamAccessKeyDetails) SetSessionContext(v *AwsIamAccessKeySessionContext) *AwsIamAccessKeyDetails { + s.SessionContext = v + return s +} + +// SetStatus sets the Status field's value. +func (s *AwsIamAccessKeyDetails) SetStatus(v string) *AwsIamAccessKeyDetails { + s.Status = &v + return s +} + +// SetUserName sets the UserName field's value. +func (s *AwsIamAccessKeyDetails) SetUserName(v string) *AwsIamAccessKeyDetails { + s.UserName = &v + return s +} + +// Provides information about the session that the key was used for. +type AwsIamAccessKeySessionContext struct { + _ struct{} `type:"structure"` + + // Attributes of the session that the key was used for. + Attributes *AwsIamAccessKeySessionContextAttributes `type:"structure"` + + // Information about the entity that created the session. + SessionIssuer *AwsIamAccessKeySessionContextSessionIssuer `type:"structure"` +} + +// String returns the string representation +func (s AwsIamAccessKeySessionContext) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsIamAccessKeySessionContext) GoString() string { + return s.String() +} + +// SetAttributes sets the Attributes field's value. +func (s *AwsIamAccessKeySessionContext) SetAttributes(v *AwsIamAccessKeySessionContextAttributes) *AwsIamAccessKeySessionContext { + s.Attributes = v + return s +} + +// SetSessionIssuer sets the SessionIssuer field's value. +func (s *AwsIamAccessKeySessionContext) SetSessionIssuer(v *AwsIamAccessKeySessionContextSessionIssuer) *AwsIamAccessKeySessionContext { + s.SessionIssuer = v + return s +} + +// Attributes of the session that the key was used for. +type AwsIamAccessKeySessionContextAttributes struct { + _ struct{} `type:"structure"` + + // Indicates when the session was created. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + CreationDate *string `type:"string"` + + // Indicates whether the session used multi-factor authentication (MFA). + MfaAuthenticated *bool `type:"boolean"` +} + +// String returns the string representation +func (s AwsIamAccessKeySessionContextAttributes) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsIamAccessKeySessionContextAttributes) GoString() string { + return s.String() +} + +// SetCreationDate sets the CreationDate field's value. +func (s *AwsIamAccessKeySessionContextAttributes) SetCreationDate(v string) *AwsIamAccessKeySessionContextAttributes { + s.CreationDate = &v + return s +} + +// SetMfaAuthenticated sets the MfaAuthenticated field's value. +func (s *AwsIamAccessKeySessionContextAttributes) SetMfaAuthenticated(v bool) *AwsIamAccessKeySessionContextAttributes { + s.MfaAuthenticated = &v + return s +} + +// Information about the entity that created the session. +type AwsIamAccessKeySessionContextSessionIssuer struct { + _ struct{} `type:"structure"` + + // The identifier of the AWS account that created the session. + AccountId *string `type:"string"` + + // The ARN of the session. + Arn *string `type:"string"` + + // The principal ID of the principal (user, role, or group) that created the + // session. + PrincipalId *string `type:"string"` + + // The type of principal (user, role, or group) that created the session. + Type *string `type:"string"` + + // The name of the principal that created the session. + UserName *string `type:"string"` +} + +// String returns the string representation +func (s AwsIamAccessKeySessionContextSessionIssuer) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsIamAccessKeySessionContextSessionIssuer) GoString() string { + return s.String() +} + +// SetAccountId sets the AccountId field's value. +func (s *AwsIamAccessKeySessionContextSessionIssuer) SetAccountId(v string) *AwsIamAccessKeySessionContextSessionIssuer { + s.AccountId = &v + return s +} + +// SetArn sets the Arn field's value. +func (s *AwsIamAccessKeySessionContextSessionIssuer) SetArn(v string) *AwsIamAccessKeySessionContextSessionIssuer { + s.Arn = &v + return s +} + +// SetPrincipalId sets the PrincipalId field's value. +func (s *AwsIamAccessKeySessionContextSessionIssuer) SetPrincipalId(v string) *AwsIamAccessKeySessionContextSessionIssuer { + s.PrincipalId = &v + return s +} + +// SetType sets the Type field's value. +func (s *AwsIamAccessKeySessionContextSessionIssuer) SetType(v string) *AwsIamAccessKeySessionContextSessionIssuer { + s.Type = &v + return s +} + +// SetUserName sets the UserName field's value. +func (s *AwsIamAccessKeySessionContextSessionIssuer) SetUserName(v string) *AwsIamAccessKeySessionContextSessionIssuer { + s.UserName = &v + return s +} + +// A managed policy that is attached to an IAM principal. +type AwsIamAttachedManagedPolicy struct { + _ struct{} `type:"structure"` + + // The ARN of the policy. + PolicyArn *string `type:"string"` + + // The name of the policy. + PolicyName *string `type:"string"` +} + +// String returns the string representation +func (s AwsIamAttachedManagedPolicy) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsIamAttachedManagedPolicy) GoString() string { + return s.String() +} + +// SetPolicyArn sets the PolicyArn field's value. +func (s *AwsIamAttachedManagedPolicy) SetPolicyArn(v string) *AwsIamAttachedManagedPolicy { + s.PolicyArn = &v + return s +} + +// SetPolicyName sets the PolicyName field's value. +func (s *AwsIamAttachedManagedPolicy) SetPolicyName(v string) *AwsIamAttachedManagedPolicy { + s.PolicyName = &v + return s +} + +// Contains details about an IAM group. +type AwsIamGroupDetails struct { + _ struct{} `type:"structure"` + + // A list of the managed policies that are attached to the IAM group. + AttachedManagedPolicies []*AwsIamAttachedManagedPolicy `type:"list"` + + // Indicates when the IAM group was created. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + CreateDate *string `type:"string"` + + // The identifier of the IAM group. + GroupId *string `type:"string"` + + // The name of the IAM group. + GroupName *string `type:"string"` + + // The list of inline policies that are embedded in the group. + GroupPolicyList []*AwsIamGroupPolicy `type:"list"` + + // The path to the group. + Path *string `type:"string"` +} + +// String returns the string representation +func (s AwsIamGroupDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsIamGroupDetails) GoString() string { + return s.String() +} + +// SetAttachedManagedPolicies sets the AttachedManagedPolicies field's value. +func (s *AwsIamGroupDetails) SetAttachedManagedPolicies(v []*AwsIamAttachedManagedPolicy) *AwsIamGroupDetails { + s.AttachedManagedPolicies = v + return s +} + +// SetCreateDate sets the CreateDate field's value. +func (s *AwsIamGroupDetails) SetCreateDate(v string) *AwsIamGroupDetails { + s.CreateDate = &v + return s +} + +// SetGroupId sets the GroupId field's value. +func (s *AwsIamGroupDetails) SetGroupId(v string) *AwsIamGroupDetails { + s.GroupId = &v + return s +} + +// SetGroupName sets the GroupName field's value. +func (s *AwsIamGroupDetails) SetGroupName(v string) *AwsIamGroupDetails { + s.GroupName = &v + return s +} + +// SetGroupPolicyList sets the GroupPolicyList field's value. +func (s *AwsIamGroupDetails) SetGroupPolicyList(v []*AwsIamGroupPolicy) *AwsIamGroupDetails { + s.GroupPolicyList = v + return s +} + +// SetPath sets the Path field's value. +func (s *AwsIamGroupDetails) SetPath(v string) *AwsIamGroupDetails { + s.Path = &v + return s +} + +// A managed policy that is attached to the IAM group. +type AwsIamGroupPolicy struct { + _ struct{} `type:"structure"` + + // The name of the policy. + PolicyName *string `type:"string"` +} + +// String returns the string representation +func (s AwsIamGroupPolicy) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsIamGroupPolicy) GoString() string { + return s.String() +} + +// SetPolicyName sets the PolicyName field's value. +func (s *AwsIamGroupPolicy) SetPolicyName(v string) *AwsIamGroupPolicy { + s.PolicyName = &v + return s +} + +// Information about an instance profile. +type AwsIamInstanceProfile struct { + _ struct{} `type:"structure"` + + // The ARN of the instance profile. + Arn *string `type:"string"` + + // Indicates when the instance profile was created. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + CreateDate *string `type:"string"` + + // The identifier of the instance profile. + InstanceProfileId *string `type:"string"` + + // The name of the instance profile. + InstanceProfileName *string `type:"string"` + + // The path to the instance profile. + Path *string `type:"string"` + + // The roles associated with the instance profile. + Roles []*AwsIamInstanceProfileRole `type:"list"` +} + +// String returns the string representation +func (s AwsIamInstanceProfile) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsIamInstanceProfile) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AwsIamInstanceProfile) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AwsIamInstanceProfile"} + if s.Roles != nil { + for i, v := range s.Roles { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Roles", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetArn sets the Arn field's value. +func (s *AwsIamInstanceProfile) SetArn(v string) *AwsIamInstanceProfile { + s.Arn = &v + return s +} + +// SetCreateDate sets the CreateDate field's value. +func (s *AwsIamInstanceProfile) SetCreateDate(v string) *AwsIamInstanceProfile { + s.CreateDate = &v + return s +} + +// SetInstanceProfileId sets the InstanceProfileId field's value. +func (s *AwsIamInstanceProfile) SetInstanceProfileId(v string) *AwsIamInstanceProfile { + s.InstanceProfileId = &v + return s +} + +// SetInstanceProfileName sets the InstanceProfileName field's value. +func (s *AwsIamInstanceProfile) SetInstanceProfileName(v string) *AwsIamInstanceProfile { + s.InstanceProfileName = &v + return s +} + +// SetPath sets the Path field's value. +func (s *AwsIamInstanceProfile) SetPath(v string) *AwsIamInstanceProfile { + s.Path = &v + return s +} + +// SetRoles sets the Roles field's value. +func (s *AwsIamInstanceProfile) SetRoles(v []*AwsIamInstanceProfileRole) *AwsIamInstanceProfile { + s.Roles = v + return s +} + +// Information about a role associated with an instance profile. +type AwsIamInstanceProfileRole struct { + _ struct{} `type:"structure"` + + // The ARN of the role. + Arn *string `type:"string"` + + // The policy that grants an entity permission to assume the role. + AssumeRolePolicyDocument *string `min:"1" type:"string"` + + // Indicates when the role was created. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + CreateDate *string `type:"string"` + + // The path to the role. + Path *string `type:"string"` + + // The identifier of the role. + RoleId *string `type:"string"` + + // The name of the role. + RoleName *string `type:"string"` +} + +// String returns the string representation +func (s AwsIamInstanceProfileRole) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsIamInstanceProfileRole) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AwsIamInstanceProfileRole) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AwsIamInstanceProfileRole"} + if s.AssumeRolePolicyDocument != nil && len(*s.AssumeRolePolicyDocument) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AssumeRolePolicyDocument", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetArn sets the Arn field's value. +func (s *AwsIamInstanceProfileRole) SetArn(v string) *AwsIamInstanceProfileRole { + s.Arn = &v + return s +} + +// SetAssumeRolePolicyDocument sets the AssumeRolePolicyDocument field's value. +func (s *AwsIamInstanceProfileRole) SetAssumeRolePolicyDocument(v string) *AwsIamInstanceProfileRole { + s.AssumeRolePolicyDocument = &v + return s +} + +// SetCreateDate sets the CreateDate field's value. +func (s *AwsIamInstanceProfileRole) SetCreateDate(v string) *AwsIamInstanceProfileRole { + s.CreateDate = &v + return s +} + +// SetPath sets the Path field's value. +func (s *AwsIamInstanceProfileRole) SetPath(v string) *AwsIamInstanceProfileRole { + s.Path = &v + return s +} + +// SetRoleId sets the RoleId field's value. +func (s *AwsIamInstanceProfileRole) SetRoleId(v string) *AwsIamInstanceProfileRole { + s.RoleId = &v + return s +} + +// SetRoleName sets the RoleName field's value. +func (s *AwsIamInstanceProfileRole) SetRoleName(v string) *AwsIamInstanceProfileRole { + s.RoleName = &v + return s +} + +// Information about the policy used to set the permissions boundary for an +// IAM principal. +type AwsIamPermissionsBoundary struct { + _ struct{} `type:"structure"` + + // The ARN of the policy used to set the permissions boundary. + PermissionsBoundaryArn *string `type:"string"` + + // The usage type for the permissions boundary. + PermissionsBoundaryType *string `type:"string"` +} + +// String returns the string representation +func (s AwsIamPermissionsBoundary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsIamPermissionsBoundary) GoString() string { + return s.String() +} + +// SetPermissionsBoundaryArn sets the PermissionsBoundaryArn field's value. +func (s *AwsIamPermissionsBoundary) SetPermissionsBoundaryArn(v string) *AwsIamPermissionsBoundary { + s.PermissionsBoundaryArn = &v + return s +} + +// SetPermissionsBoundaryType sets the PermissionsBoundaryType field's value. +func (s *AwsIamPermissionsBoundary) SetPermissionsBoundaryType(v string) *AwsIamPermissionsBoundary { + s.PermissionsBoundaryType = &v + return s +} + +// Represents an IAM permissions policy. +type AwsIamPolicyDetails struct { + _ struct{} `type:"structure"` + + // The number of users, groups, and roles that the policy is attached to. + AttachmentCount *int64 `type:"integer"` + + // When the policy was created. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + CreateDate *string `type:"string"` + + // The identifier of the default version of the policy. + DefaultVersionId *string `type:"string"` + + // A description of the policy. + Description *string `type:"string"` + + // Whether the policy can be attached to a user, group, or role. + IsAttachable *bool `type:"boolean"` + + // The path to the policy. + Path *string `type:"string"` + + // The number of users and roles that use the policy to set the permissions + // boundary. + PermissionsBoundaryUsageCount *int64 `type:"integer"` + + // The unique identifier of the policy. + PolicyId *string `type:"string"` + + // The name of the policy. + PolicyName *string `type:"string"` + + // List of versions of the policy. + PolicyVersionList []*AwsIamPolicyVersion `type:"list"` + + // When the policy was most recently updated. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + UpdateDate *string `type:"string"` +} + +// String returns the string representation +func (s AwsIamPolicyDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsIamPolicyDetails) GoString() string { + return s.String() +} + +// SetAttachmentCount sets the AttachmentCount field's value. +func (s *AwsIamPolicyDetails) SetAttachmentCount(v int64) *AwsIamPolicyDetails { + s.AttachmentCount = &v + return s +} + +// SetCreateDate sets the CreateDate field's value. +func (s *AwsIamPolicyDetails) SetCreateDate(v string) *AwsIamPolicyDetails { + s.CreateDate = &v + return s +} + +// SetDefaultVersionId sets the DefaultVersionId field's value. +func (s *AwsIamPolicyDetails) SetDefaultVersionId(v string) *AwsIamPolicyDetails { + s.DefaultVersionId = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *AwsIamPolicyDetails) SetDescription(v string) *AwsIamPolicyDetails { + s.Description = &v + return s +} + +// SetIsAttachable sets the IsAttachable field's value. +func (s *AwsIamPolicyDetails) SetIsAttachable(v bool) *AwsIamPolicyDetails { + s.IsAttachable = &v + return s +} + +// SetPath sets the Path field's value. +func (s *AwsIamPolicyDetails) SetPath(v string) *AwsIamPolicyDetails { + s.Path = &v + return s +} + +// SetPermissionsBoundaryUsageCount sets the PermissionsBoundaryUsageCount field's value. +func (s *AwsIamPolicyDetails) SetPermissionsBoundaryUsageCount(v int64) *AwsIamPolicyDetails { + s.PermissionsBoundaryUsageCount = &v + return s +} + +// SetPolicyId sets the PolicyId field's value. +func (s *AwsIamPolicyDetails) SetPolicyId(v string) *AwsIamPolicyDetails { + s.PolicyId = &v + return s +} + +// SetPolicyName sets the PolicyName field's value. +func (s *AwsIamPolicyDetails) SetPolicyName(v string) *AwsIamPolicyDetails { + s.PolicyName = &v + return s +} + +// SetPolicyVersionList sets the PolicyVersionList field's value. +func (s *AwsIamPolicyDetails) SetPolicyVersionList(v []*AwsIamPolicyVersion) *AwsIamPolicyDetails { + s.PolicyVersionList = v + return s +} + +// SetUpdateDate sets the UpdateDate field's value. +func (s *AwsIamPolicyDetails) SetUpdateDate(v string) *AwsIamPolicyDetails { + s.UpdateDate = &v + return s +} + +// A version of an IAM policy. +type AwsIamPolicyVersion struct { + _ struct{} `type:"structure"` + + // Indicates when the version was created. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + CreateDate *string `type:"string"` + + // Whether the version is the default version. + IsDefaultVersion *bool `type:"boolean"` + + // The identifier of the policy version. + VersionId *string `type:"string"` +} + +// String returns the string representation +func (s AwsIamPolicyVersion) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsIamPolicyVersion) GoString() string { + return s.String() +} + +// SetCreateDate sets the CreateDate field's value. +func (s *AwsIamPolicyVersion) SetCreateDate(v string) *AwsIamPolicyVersion { + s.CreateDate = &v + return s +} + +// SetIsDefaultVersion sets the IsDefaultVersion field's value. +func (s *AwsIamPolicyVersion) SetIsDefaultVersion(v bool) *AwsIamPolicyVersion { + s.IsDefaultVersion = &v + return s +} + +// SetVersionId sets the VersionId field's value. +func (s *AwsIamPolicyVersion) SetVersionId(v string) *AwsIamPolicyVersion { + s.VersionId = &v + return s +} + +// Contains information about an IAM role, including all of the role's policies. +type AwsIamRoleDetails struct { + _ struct{} `type:"structure"` + + // The trust policy that grants permission to assume the role. + AssumeRolePolicyDocument *string `min:"1" type:"string"` + + // The list of the managed policies that are attached to the role. + AttachedManagedPolicies []*AwsIamAttachedManagedPolicy `type:"list"` + + // Indicates when the role was created. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + CreateDate *string `type:"string"` + + // The list of instance profiles that contain this role. + InstanceProfileList []*AwsIamInstanceProfile `type:"list"` + + // The maximum session duration (in seconds) that you want to set for the specified + // role. + MaxSessionDuration *int64 `type:"integer"` + + // The path to the role. + Path *string `type:"string"` + + // Information about the policy used to set the permissions boundary for an + // IAM principal. + PermissionsBoundary *AwsIamPermissionsBoundary `type:"structure"` + + // The stable and unique string identifying the role. + RoleId *string `type:"string"` + + // The friendly name that identifies the role. + RoleName *string `type:"string"` + + // The list of inline policies that are embedded in the role. + RolePolicyList []*AwsIamRolePolicy `type:"list"` +} + +// String returns the string representation +func (s AwsIamRoleDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsIamRoleDetails) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AwsIamRoleDetails) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AwsIamRoleDetails"} + if s.AssumeRolePolicyDocument != nil && len(*s.AssumeRolePolicyDocument) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AssumeRolePolicyDocument", 1)) + } + if s.InstanceProfileList != nil { + for i, v := range s.InstanceProfileList { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceProfileList", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAssumeRolePolicyDocument sets the AssumeRolePolicyDocument field's value. +func (s *AwsIamRoleDetails) SetAssumeRolePolicyDocument(v string) *AwsIamRoleDetails { + s.AssumeRolePolicyDocument = &v + return s +} + +// SetAttachedManagedPolicies sets the AttachedManagedPolicies field's value. +func (s *AwsIamRoleDetails) SetAttachedManagedPolicies(v []*AwsIamAttachedManagedPolicy) *AwsIamRoleDetails { + s.AttachedManagedPolicies = v + return s +} + +// SetCreateDate sets the CreateDate field's value. +func (s *AwsIamRoleDetails) SetCreateDate(v string) *AwsIamRoleDetails { + s.CreateDate = &v + return s +} + +// SetInstanceProfileList sets the InstanceProfileList field's value. +func (s *AwsIamRoleDetails) SetInstanceProfileList(v []*AwsIamInstanceProfile) *AwsIamRoleDetails { + s.InstanceProfileList = v + return s +} + +// SetMaxSessionDuration sets the MaxSessionDuration field's value. +func (s *AwsIamRoleDetails) SetMaxSessionDuration(v int64) *AwsIamRoleDetails { + s.MaxSessionDuration = &v + return s +} + +// SetPath sets the Path field's value. +func (s *AwsIamRoleDetails) SetPath(v string) *AwsIamRoleDetails { + s.Path = &v + return s +} + +// SetPermissionsBoundary sets the PermissionsBoundary field's value. +func (s *AwsIamRoleDetails) SetPermissionsBoundary(v *AwsIamPermissionsBoundary) *AwsIamRoleDetails { + s.PermissionsBoundary = v + return s +} + +// SetRoleId sets the RoleId field's value. +func (s *AwsIamRoleDetails) SetRoleId(v string) *AwsIamRoleDetails { + s.RoleId = &v + return s +} + +// SetRoleName sets the RoleName field's value. +func (s *AwsIamRoleDetails) SetRoleName(v string) *AwsIamRoleDetails { + s.RoleName = &v + return s +} + +// SetRolePolicyList sets the RolePolicyList field's value. +func (s *AwsIamRoleDetails) SetRolePolicyList(v []*AwsIamRolePolicy) *AwsIamRoleDetails { + s.RolePolicyList = v + return s +} + +// An inline policy that is embedded in the role. +type AwsIamRolePolicy struct { + _ struct{} `type:"structure"` + + // The name of the policy. + PolicyName *string `type:"string"` +} + +// String returns the string representation +func (s AwsIamRolePolicy) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsIamRolePolicy) GoString() string { + return s.String() +} + +// SetPolicyName sets the PolicyName field's value. +func (s *AwsIamRolePolicy) SetPolicyName(v string) *AwsIamRolePolicy { + s.PolicyName = &v + return s +} + +// Information about an IAM user. +type AwsIamUserDetails struct { + _ struct{} `type:"structure"` + + // A list of the managed policies that are attached to the user. + AttachedManagedPolicies []*AwsIamAttachedManagedPolicy `type:"list"` + + // Indicates when the user was created. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + CreateDate *string `type:"string"` + + // A list of IAM groups that the user belongs to. + GroupList []*string `type:"list"` + + // The path to the user. + Path *string `type:"string"` + + // The permissions boundary for the user. + PermissionsBoundary *AwsIamPermissionsBoundary `type:"structure"` + + // The unique identifier for the user. + UserId *string `type:"string"` + + // The name of the user. + UserName *string `type:"string"` + + // The list of inline policies that are embedded in the user. + UserPolicyList []*AwsIamUserPolicy `type:"list"` +} + +// String returns the string representation +func (s AwsIamUserDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsIamUserDetails) GoString() string { + return s.String() +} + +// SetAttachedManagedPolicies sets the AttachedManagedPolicies field's value. +func (s *AwsIamUserDetails) SetAttachedManagedPolicies(v []*AwsIamAttachedManagedPolicy) *AwsIamUserDetails { + s.AttachedManagedPolicies = v + return s +} + +// SetCreateDate sets the CreateDate field's value. +func (s *AwsIamUserDetails) SetCreateDate(v string) *AwsIamUserDetails { + s.CreateDate = &v + return s +} + +// SetGroupList sets the GroupList field's value. +func (s *AwsIamUserDetails) SetGroupList(v []*string) *AwsIamUserDetails { + s.GroupList = v + return s +} + +// SetPath sets the Path field's value. +func (s *AwsIamUserDetails) SetPath(v string) *AwsIamUserDetails { + s.Path = &v + return s +} + +// SetPermissionsBoundary sets the PermissionsBoundary field's value. +func (s *AwsIamUserDetails) SetPermissionsBoundary(v *AwsIamPermissionsBoundary) *AwsIamUserDetails { + s.PermissionsBoundary = v + return s +} + +// SetUserId sets the UserId field's value. +func (s *AwsIamUserDetails) SetUserId(v string) *AwsIamUserDetails { + s.UserId = &v + return s +} + +// SetUserName sets the UserName field's value. +func (s *AwsIamUserDetails) SetUserName(v string) *AwsIamUserDetails { + s.UserName = &v + return s +} + +// SetUserPolicyList sets the UserPolicyList field's value. +func (s *AwsIamUserDetails) SetUserPolicyList(v []*AwsIamUserPolicy) *AwsIamUserDetails { + s.UserPolicyList = v + return s +} + +// Information about an inline policy that is embedded in the user. +type AwsIamUserPolicy struct { + _ struct{} `type:"structure"` + + // The name of the policy. + PolicyName *string `type:"string"` +} + +// String returns the string representation +func (s AwsIamUserPolicy) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsIamUserPolicy) GoString() string { + return s.String() +} + +// SetPolicyName sets the PolicyName field's value. +func (s *AwsIamUserPolicy) SetPolicyName(v string) *AwsIamUserPolicy { + s.PolicyName = &v + return s +} + +// Contains metadata about a customer master key (CMK). +type AwsKmsKeyDetails struct { + _ struct{} `type:"structure"` + + // The twelve-digit account ID of the AWS account that owns the CMK. + AWSAccountId *string `type:"string"` + + // Indicates when the CMK was created. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + CreationDate *float64 `type:"double"` + + // A description of the key. + Description *string `type:"string"` + + // The globally unique identifier for the CMK. + KeyId *string `type:"string"` + + // The manager of the CMK. CMKs in your AWS account are either customer managed + // or AWS managed. + KeyManager *string `type:"string"` + + // The state of the CMK. + KeyState *string `type:"string"` + + // The source of the CMK's key material. + // + // When this value is AWS_KMS, AWS KMS created the key material. + // + // When this value is EXTERNAL, the key material was imported from your existing + // key management infrastructure or the CMK lacks key material. + // + // When this value is AWS_CLOUDHSM, the key material was created in the AWS + // CloudHSM cluster associated with a custom key store. + Origin *string `type:"string"` +} + +// String returns the string representation +func (s AwsKmsKeyDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsKmsKeyDetails) GoString() string { + return s.String() +} + +// SetAWSAccountId sets the AWSAccountId field's value. +func (s *AwsKmsKeyDetails) SetAWSAccountId(v string) *AwsKmsKeyDetails { + s.AWSAccountId = &v + return s +} + +// SetCreationDate sets the CreationDate field's value. +func (s *AwsKmsKeyDetails) SetCreationDate(v float64) *AwsKmsKeyDetails { + s.CreationDate = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *AwsKmsKeyDetails) SetDescription(v string) *AwsKmsKeyDetails { + s.Description = &v + return s +} + +// SetKeyId sets the KeyId field's value. +func (s *AwsKmsKeyDetails) SetKeyId(v string) *AwsKmsKeyDetails { + s.KeyId = &v + return s +} + +// SetKeyManager sets the KeyManager field's value. +func (s *AwsKmsKeyDetails) SetKeyManager(v string) *AwsKmsKeyDetails { + s.KeyManager = &v + return s +} + +// SetKeyState sets the KeyState field's value. +func (s *AwsKmsKeyDetails) SetKeyState(v string) *AwsKmsKeyDetails { + s.KeyState = &v + return s +} + +// SetOrigin sets the Origin field's value. +func (s *AwsKmsKeyDetails) SetOrigin(v string) *AwsKmsKeyDetails { + s.Origin = &v + return s +} + +// The code for the Lambda function. You can specify either an object in Amazon +// S3, or upload a deployment package directly. +type AwsLambdaFunctionCode struct { + _ struct{} `type:"structure"` + + // An Amazon S3 bucket in the same AWS Region as your function. The bucket can + // be in a different AWS account. + S3Bucket *string `type:"string"` + + // The Amazon S3 key of the deployment package. + S3Key *string `type:"string"` + + // For versioned objects, the version of the deployment package object to use. + S3ObjectVersion *string `type:"string"` + + // The base64-encoded contents of the deployment package. AWS SDK and AWS CLI + // clients handle the encoding for you. + ZipFile *string `type:"string"` +} + +// String returns the string representation +func (s AwsLambdaFunctionCode) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsLambdaFunctionCode) GoString() string { + return s.String() +} + +// SetS3Bucket sets the S3Bucket field's value. +func (s *AwsLambdaFunctionCode) SetS3Bucket(v string) *AwsLambdaFunctionCode { + s.S3Bucket = &v + return s +} + +// SetS3Key sets the S3Key field's value. +func (s *AwsLambdaFunctionCode) SetS3Key(v string) *AwsLambdaFunctionCode { + s.S3Key = &v + return s +} + +// SetS3ObjectVersion sets the S3ObjectVersion field's value. +func (s *AwsLambdaFunctionCode) SetS3ObjectVersion(v string) *AwsLambdaFunctionCode { + s.S3ObjectVersion = &v + return s +} + +// SetZipFile sets the ZipFile field's value. +func (s *AwsLambdaFunctionCode) SetZipFile(v string) *AwsLambdaFunctionCode { + s.ZipFile = &v + return s +} + +// The dead-letter queue for failed asynchronous invocations. +type AwsLambdaFunctionDeadLetterConfig struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of an Amazon SQS queue or Amazon SNS topic. + TargetArn *string `type:"string"` +} + +// String returns the string representation +func (s AwsLambdaFunctionDeadLetterConfig) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsLambdaFunctionDeadLetterConfig) GoString() string { + return s.String() +} + +// SetTargetArn sets the TargetArn field's value. +func (s *AwsLambdaFunctionDeadLetterConfig) SetTargetArn(v string) *AwsLambdaFunctionDeadLetterConfig { + s.TargetArn = &v + return s +} + +// Details about a function's configuration. +type AwsLambdaFunctionDetails struct { + _ struct{} `type:"structure"` + + // An AwsLambdaFunctionCode object. + Code *AwsLambdaFunctionCode `type:"structure"` + + // The SHA256 hash of the function's deployment package. + CodeSha256 *string `type:"string"` + + // The function's dead letter queue. + DeadLetterConfig *AwsLambdaFunctionDeadLetterConfig `type:"structure"` + + // The function's environment variables. + Environment *AwsLambdaFunctionEnvironment `type:"structure"` + + // The name of the function. + FunctionName *string `type:"string"` + + // The function that Lambda calls to begin executing your function. + Handler *string `type:"string"` + + // The KMS key that's used to encrypt the function's environment variables. + // This key is only returned if you've configured a customer managed CMK. + KmsKeyArn *string `type:"string"` + + // Indicates when the function was last updated. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + LastModified *string `type:"string"` + + // The function's layers. + Layers []*AwsLambdaFunctionLayer `type:"list"` + + // For Lambda@Edge functions, the ARN of the master function. + MasterArn *string `type:"string"` + + // The memory that's allocated to the function. + MemorySize *int64 `type:"integer"` + + // The latest updated revision of the function or alias. + RevisionId *string `type:"string"` + + // The function's execution role. + Role *string `type:"string"` + + // The runtime environment for the Lambda function. + Runtime *string `type:"string"` + + // The amount of time that Lambda allows a function to run before stopping it. + Timeout *int64 `type:"integer"` + + // The function's AWS X-Ray tracing configuration. + TracingConfig *AwsLambdaFunctionTracingConfig `type:"structure"` + + // The version of the Lambda function. + Version *string `type:"string"` + + // The function's networking configuration. + VpcConfig *AwsLambdaFunctionVpcConfig `type:"structure"` +} + +// String returns the string representation +func (s AwsLambdaFunctionDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsLambdaFunctionDetails) GoString() string { + return s.String() +} + +// SetCode sets the Code field's value. +func (s *AwsLambdaFunctionDetails) SetCode(v *AwsLambdaFunctionCode) *AwsLambdaFunctionDetails { + s.Code = v + return s +} + +// SetCodeSha256 sets the CodeSha256 field's value. +func (s *AwsLambdaFunctionDetails) SetCodeSha256(v string) *AwsLambdaFunctionDetails { + s.CodeSha256 = &v + return s +} + +// SetDeadLetterConfig sets the DeadLetterConfig field's value. +func (s *AwsLambdaFunctionDetails) SetDeadLetterConfig(v *AwsLambdaFunctionDeadLetterConfig) *AwsLambdaFunctionDetails { + s.DeadLetterConfig = v + return s +} + +// SetEnvironment sets the Environment field's value. +func (s *AwsLambdaFunctionDetails) SetEnvironment(v *AwsLambdaFunctionEnvironment) *AwsLambdaFunctionDetails { + s.Environment = v + return s +} + +// SetFunctionName sets the FunctionName field's value. +func (s *AwsLambdaFunctionDetails) SetFunctionName(v string) *AwsLambdaFunctionDetails { + s.FunctionName = &v + return s +} + +// SetHandler sets the Handler field's value. +func (s *AwsLambdaFunctionDetails) SetHandler(v string) *AwsLambdaFunctionDetails { + s.Handler = &v + return s +} + +// SetKmsKeyArn sets the KmsKeyArn field's value. +func (s *AwsLambdaFunctionDetails) SetKmsKeyArn(v string) *AwsLambdaFunctionDetails { + s.KmsKeyArn = &v + return s +} + +// SetLastModified sets the LastModified field's value. +func (s *AwsLambdaFunctionDetails) SetLastModified(v string) *AwsLambdaFunctionDetails { + s.LastModified = &v + return s +} + +// SetLayers sets the Layers field's value. +func (s *AwsLambdaFunctionDetails) SetLayers(v []*AwsLambdaFunctionLayer) *AwsLambdaFunctionDetails { + s.Layers = v + return s +} + +// SetMasterArn sets the MasterArn field's value. +func (s *AwsLambdaFunctionDetails) SetMasterArn(v string) *AwsLambdaFunctionDetails { + s.MasterArn = &v + return s +} + +// SetMemorySize sets the MemorySize field's value. +func (s *AwsLambdaFunctionDetails) SetMemorySize(v int64) *AwsLambdaFunctionDetails { + s.MemorySize = &v + return s +} + +// SetRevisionId sets the RevisionId field's value. +func (s *AwsLambdaFunctionDetails) SetRevisionId(v string) *AwsLambdaFunctionDetails { + s.RevisionId = &v + return s +} + +// SetRole sets the Role field's value. +func (s *AwsLambdaFunctionDetails) SetRole(v string) *AwsLambdaFunctionDetails { + s.Role = &v + return s +} + +// SetRuntime sets the Runtime field's value. +func (s *AwsLambdaFunctionDetails) SetRuntime(v string) *AwsLambdaFunctionDetails { + s.Runtime = &v + return s +} + +// SetTimeout sets the Timeout field's value. +func (s *AwsLambdaFunctionDetails) SetTimeout(v int64) *AwsLambdaFunctionDetails { + s.Timeout = &v + return s +} + +// SetTracingConfig sets the TracingConfig field's value. +func (s *AwsLambdaFunctionDetails) SetTracingConfig(v *AwsLambdaFunctionTracingConfig) *AwsLambdaFunctionDetails { + s.TracingConfig = v + return s +} + +// SetVersion sets the Version field's value. +func (s *AwsLambdaFunctionDetails) SetVersion(v string) *AwsLambdaFunctionDetails { + s.Version = &v + return s +} + +// SetVpcConfig sets the VpcConfig field's value. +func (s *AwsLambdaFunctionDetails) SetVpcConfig(v *AwsLambdaFunctionVpcConfig) *AwsLambdaFunctionDetails { + s.VpcConfig = v + return s +} + +// A function's environment variable settings. +type AwsLambdaFunctionEnvironment struct { + _ struct{} `type:"structure"` + + // An AwsLambdaFunctionEnvironmentError object. + Error *AwsLambdaFunctionEnvironmentError `type:"structure"` + + // Environment variable key-value pairs. + Variables map[string]*string `type:"map"` +} + +// String returns the string representation +func (s AwsLambdaFunctionEnvironment) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsLambdaFunctionEnvironment) GoString() string { + return s.String() +} + +// SetError sets the Error field's value. +func (s *AwsLambdaFunctionEnvironment) SetError(v *AwsLambdaFunctionEnvironmentError) *AwsLambdaFunctionEnvironment { + s.Error = v + return s +} + +// SetVariables sets the Variables field's value. +func (s *AwsLambdaFunctionEnvironment) SetVariables(v map[string]*string) *AwsLambdaFunctionEnvironment { + s.Variables = v + return s +} + +// Error messages for environment variables that couldn't be applied. +type AwsLambdaFunctionEnvironmentError struct { + _ struct{} `type:"structure"` + + // The error code. + ErrorCode *string `type:"string"` + + // The error message. + Message *string `type:"string"` +} + +// String returns the string representation +func (s AwsLambdaFunctionEnvironmentError) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsLambdaFunctionEnvironmentError) GoString() string { + return s.String() +} + +// SetErrorCode sets the ErrorCode field's value. +func (s *AwsLambdaFunctionEnvironmentError) SetErrorCode(v string) *AwsLambdaFunctionEnvironmentError { + s.ErrorCode = &v + return s +} + +// SetMessage sets the Message field's value. +func (s *AwsLambdaFunctionEnvironmentError) SetMessage(v string) *AwsLambdaFunctionEnvironmentError { + s.Message = &v + return s +} + +// An AWS Lambda layer. +type AwsLambdaFunctionLayer struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the function layer. + Arn *string `type:"string"` + + // The size of the layer archive in bytes. + CodeSize *int64 `type:"integer"` +} + +// String returns the string representation +func (s AwsLambdaFunctionLayer) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsLambdaFunctionLayer) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *AwsLambdaFunctionLayer) SetArn(v string) *AwsLambdaFunctionLayer { + s.Arn = &v + return s +} + +// SetCodeSize sets the CodeSize field's value. +func (s *AwsLambdaFunctionLayer) SetCodeSize(v int64) *AwsLambdaFunctionLayer { + s.CodeSize = &v + return s +} + +// The function's AWS X-Ray tracing configuration. +type AwsLambdaFunctionTracingConfig struct { + _ struct{} `type:"structure"` + + // The tracing mode. + Mode *string `type:"string"` +} + +// String returns the string representation +func (s AwsLambdaFunctionTracingConfig) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsLambdaFunctionTracingConfig) GoString() string { + return s.String() +} + +// SetMode sets the Mode field's value. +func (s *AwsLambdaFunctionTracingConfig) SetMode(v string) *AwsLambdaFunctionTracingConfig { + s.Mode = &v + return s +} + +// The VPC security groups and subnets that are attached to a Lambda function. +// For more information, see VPC Settings. +type AwsLambdaFunctionVpcConfig struct { + _ struct{} `type:"structure"` + + // A list of VPC security groups IDs. + SecurityGroupIds []*string `type:"list"` + + // A list of VPC subnet IDs. + SubnetIds []*string `type:"list"` + + // The ID of the VPC. + VpcId *string `type:"string"` +} + +// String returns the string representation +func (s AwsLambdaFunctionVpcConfig) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsLambdaFunctionVpcConfig) GoString() string { + return s.String() +} + +// SetSecurityGroupIds sets the SecurityGroupIds field's value. +func (s *AwsLambdaFunctionVpcConfig) SetSecurityGroupIds(v []*string) *AwsLambdaFunctionVpcConfig { + s.SecurityGroupIds = v + return s +} + +// SetSubnetIds sets the SubnetIds field's value. +func (s *AwsLambdaFunctionVpcConfig) SetSubnetIds(v []*string) *AwsLambdaFunctionVpcConfig { + s.SubnetIds = v + return s +} + +// SetVpcId sets the VpcId field's value. +func (s *AwsLambdaFunctionVpcConfig) SetVpcId(v string) *AwsLambdaFunctionVpcConfig { + s.VpcId = &v + return s +} + +// Details about a Lambda layer version. +type AwsLambdaLayerVersionDetails struct { + _ struct{} `type:"structure"` + + // The layer's compatible runtimes. Maximum number of five items. + // + // Valid values: nodejs10.x | nodejs12.x | java8 | java11 | python2.7 | python3.6 + // | python3.7 | python3.8 | dotnetcore1.0 | dotnetcore2.1 | go1.x | ruby2.5 + // | provided + CompatibleRuntimes []*string `type:"list"` + + // Indicates when the version was created. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + CreatedDate *string `type:"string"` + + // The version number. + Version *int64 `type:"long"` +} + +// String returns the string representation +func (s AwsLambdaLayerVersionDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsLambdaLayerVersionDetails) GoString() string { + return s.String() +} + +// SetCompatibleRuntimes sets the CompatibleRuntimes field's value. +func (s *AwsLambdaLayerVersionDetails) SetCompatibleRuntimes(v []*string) *AwsLambdaLayerVersionDetails { + s.CompatibleRuntimes = v + return s +} + +// SetCreatedDate sets the CreatedDate field's value. +func (s *AwsLambdaLayerVersionDetails) SetCreatedDate(v string) *AwsLambdaLayerVersionDetails { + s.CreatedDate = &v + return s +} + +// SetVersion sets the Version field's value. +func (s *AwsLambdaLayerVersionDetails) SetVersion(v int64) *AwsLambdaLayerVersionDetails { + s.Version = &v + return s +} + +// An IAM role that is associated with the Amazon RDS DB cluster. +type AwsRdsDbClusterAssociatedRole struct { + _ struct{} `type:"structure"` + + // The ARN of the IAM role. + RoleArn *string `type:"string"` + + // The status of the association between the IAM role and the DB cluster. + Status *string `type:"string"` +} + +// String returns the string representation +func (s AwsRdsDbClusterAssociatedRole) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsRdsDbClusterAssociatedRole) GoString() string { + return s.String() +} + +// SetRoleArn sets the RoleArn field's value. +func (s *AwsRdsDbClusterAssociatedRole) SetRoleArn(v string) *AwsRdsDbClusterAssociatedRole { + s.RoleArn = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *AwsRdsDbClusterAssociatedRole) SetStatus(v string) *AwsRdsDbClusterAssociatedRole { + s.Status = &v + return s +} + +// Information about an Amazon RDS DB cluster. +type AwsRdsDbClusterDetails struct { + _ struct{} `type:"structure"` + + // The status of the database activity stream. + ActivityStreamStatus *string `type:"string"` + + // For all database engines except Aurora, specifies the allocated storage size + // in gibibytes (GiB). + AllocatedStorage *int64 `type:"integer"` + + // A list of the IAM roles that are associated with the DB cluster. + AssociatedRoles []*AwsRdsDbClusterAssociatedRole `type:"list"` + + // A list of Availability Zones (AZs) where instances in the DB cluster can + // be created. + AvailabilityZones []*string `type:"list"` + + // The number of days for which automated backups are retained. + BackupRetentionPeriod *int64 `type:"integer"` + + // Indicates when the DB cluster was created, in Universal Coordinated Time + // (UTC). + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + ClusterCreateTime *string `type:"string"` + + // Whether tags are copied from the DB cluster to snapshots of the DB cluster. + CopyTagsToSnapshot *bool `type:"boolean"` + + // Whether the DB cluster is a clone of a DB cluster owned by a different AWS + // account. + CrossAccountClone *bool `type:"boolean"` + + // A list of custom endpoints for the DB cluster. + CustomEndpoints []*string `type:"list"` + + // The name of the database. + DatabaseName *string `type:"string"` + + // The DB cluster identifier that the user assigned to the cluster. This identifier + // is the unique key that identifies a DB cluster. + DbClusterIdentifier *string `type:"string"` + + // The list of instances that make up the DB cluster. + DbClusterMembers []*AwsRdsDbClusterMember `type:"list"` + + // The list of option group memberships for this DB cluster. + DbClusterOptionGroupMemberships []*AwsRdsDbClusterOptionGroupMembership `type:"list"` + + // The name of the DB cluster parameter group for the DB cluster. + DbClusterParameterGroup *string `type:"string"` + + // The identifier of the DB cluster. The identifier must be unique within each + // AWS Region and is immutable. + DbClusterResourceId *string `type:"string"` + + // The subnet group that is associated with the DB cluster, including the name, + // description, and subnets in the subnet group. + DbSubnetGroup *string `type:"string"` + + // Whether the DB cluster has deletion protection enabled. + DeletionProtection *bool `type:"boolean"` + + // The Active Directory domain membership records that are associated with the + // DB cluster. + DomainMemberships []*AwsRdsDbDomainMembership `type:"list"` + + // A list of log types that this DB cluster is configured to export to CloudWatch + // Logs. + EnabledCloudWatchLogsExports []*string `type:"list"` + + // The connection endpoint for the primary instance of the DB cluster. + Endpoint *string `type:"string"` + + // The name of the database engine to use for this DB cluster. + Engine *string `type:"string"` + + // The database engine mode of the DB cluster. + EngineMode *string `type:"string"` + + // The version number of the database engine to use. + EngineVersion *string `type:"string"` + + // Specifies the identifier that Amazon Route 53 assigns when you create a hosted + // zone. + HostedZoneId *string `type:"string"` + + // Whether the HTTP endpoint for an Aurora Serverless DB cluster is enabled. + HttpEndpointEnabled *bool `type:"boolean"` + + // Whether the mapping of IAM accounts to database accounts is enabled. + IamDatabaseAuthenticationEnabled *bool `type:"boolean"` + + // The ARN of the AWS KMS master key that is used to encrypt the database instances + // in the DB cluster. + KmsKeyId *string `type:"string"` + + // The name of the master user for the DB cluster. + MasterUsername *string `type:"string"` + + // Whether the DB cluster has instances in multiple Availability Zones. + MultiAz *bool `type:"boolean"` + + // The port number on which the DB instances in the DB cluster accept connections. + Port *int64 `type:"integer"` + + // The range of time each day when automated backups are created, if automated + // backups are enabled. + // + // Uses the format HH:MM-HH:MM. For example, 04:52-05:22. + PreferredBackupWindow *string `type:"string"` + + // The weekly time range during which system maintenance can occur, in Universal + // Coordinated Time (UTC). + // + // Uses the format :HH:MM-:HH:MM. + // + // For the day values, use mon|tue|wed|thu|fri|sat|sun. + // + // For example, sun:09:32-sun:10:02. + PreferredMaintenanceWindow *string `type:"string"` + + // The identifiers of the read replicas that are associated with this DB cluster. + ReadReplicaIdentifiers []*string `type:"list"` + + // The reader endpoint for the DB cluster. + ReaderEndpoint *string `type:"string"` + + // The current status of this DB cluster. + Status *string `type:"string"` + + // Whether the DB cluster is encrypted. + StorageEncrypted *bool `type:"boolean"` + + // A list of VPC security groups that the DB cluster belongs to. + VpcSecurityGroups []*AwsRdsDbInstanceVpcSecurityGroup `type:"list"` +} + +// String returns the string representation +func (s AwsRdsDbClusterDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsRdsDbClusterDetails) GoString() string { + return s.String() +} + +// SetActivityStreamStatus sets the ActivityStreamStatus field's value. +func (s *AwsRdsDbClusterDetails) SetActivityStreamStatus(v string) *AwsRdsDbClusterDetails { + s.ActivityStreamStatus = &v + return s +} + +// SetAllocatedStorage sets the AllocatedStorage field's value. +func (s *AwsRdsDbClusterDetails) SetAllocatedStorage(v int64) *AwsRdsDbClusterDetails { + s.AllocatedStorage = &v + return s +} + +// SetAssociatedRoles sets the AssociatedRoles field's value. +func (s *AwsRdsDbClusterDetails) SetAssociatedRoles(v []*AwsRdsDbClusterAssociatedRole) *AwsRdsDbClusterDetails { + s.AssociatedRoles = v + return s +} + +// SetAvailabilityZones sets the AvailabilityZones field's value. +func (s *AwsRdsDbClusterDetails) SetAvailabilityZones(v []*string) *AwsRdsDbClusterDetails { + s.AvailabilityZones = v + return s +} + +// SetBackupRetentionPeriod sets the BackupRetentionPeriod field's value. +func (s *AwsRdsDbClusterDetails) SetBackupRetentionPeriod(v int64) *AwsRdsDbClusterDetails { + s.BackupRetentionPeriod = &v + return s +} + +// SetClusterCreateTime sets the ClusterCreateTime field's value. +func (s *AwsRdsDbClusterDetails) SetClusterCreateTime(v string) *AwsRdsDbClusterDetails { + s.ClusterCreateTime = &v + return s +} + +// SetCopyTagsToSnapshot sets the CopyTagsToSnapshot field's value. +func (s *AwsRdsDbClusterDetails) SetCopyTagsToSnapshot(v bool) *AwsRdsDbClusterDetails { + s.CopyTagsToSnapshot = &v + return s +} + +// SetCrossAccountClone sets the CrossAccountClone field's value. +func (s *AwsRdsDbClusterDetails) SetCrossAccountClone(v bool) *AwsRdsDbClusterDetails { + s.CrossAccountClone = &v + return s +} + +// SetCustomEndpoints sets the CustomEndpoints field's value. +func (s *AwsRdsDbClusterDetails) SetCustomEndpoints(v []*string) *AwsRdsDbClusterDetails { + s.CustomEndpoints = v + return s +} + +// SetDatabaseName sets the DatabaseName field's value. +func (s *AwsRdsDbClusterDetails) SetDatabaseName(v string) *AwsRdsDbClusterDetails { + s.DatabaseName = &v + return s +} + +// SetDbClusterIdentifier sets the DbClusterIdentifier field's value. +func (s *AwsRdsDbClusterDetails) SetDbClusterIdentifier(v string) *AwsRdsDbClusterDetails { + s.DbClusterIdentifier = &v + return s +} + +// SetDbClusterMembers sets the DbClusterMembers field's value. +func (s *AwsRdsDbClusterDetails) SetDbClusterMembers(v []*AwsRdsDbClusterMember) *AwsRdsDbClusterDetails { + s.DbClusterMembers = v + return s +} + +// SetDbClusterOptionGroupMemberships sets the DbClusterOptionGroupMemberships field's value. +func (s *AwsRdsDbClusterDetails) SetDbClusterOptionGroupMemberships(v []*AwsRdsDbClusterOptionGroupMembership) *AwsRdsDbClusterDetails { + s.DbClusterOptionGroupMemberships = v + return s +} + +// SetDbClusterParameterGroup sets the DbClusterParameterGroup field's value. +func (s *AwsRdsDbClusterDetails) SetDbClusterParameterGroup(v string) *AwsRdsDbClusterDetails { + s.DbClusterParameterGroup = &v + return s +} + +// SetDbClusterResourceId sets the DbClusterResourceId field's value. +func (s *AwsRdsDbClusterDetails) SetDbClusterResourceId(v string) *AwsRdsDbClusterDetails { + s.DbClusterResourceId = &v + return s +} + +// SetDbSubnetGroup sets the DbSubnetGroup field's value. +func (s *AwsRdsDbClusterDetails) SetDbSubnetGroup(v string) *AwsRdsDbClusterDetails { + s.DbSubnetGroup = &v + return s +} + +// SetDeletionProtection sets the DeletionProtection field's value. +func (s *AwsRdsDbClusterDetails) SetDeletionProtection(v bool) *AwsRdsDbClusterDetails { + s.DeletionProtection = &v + return s +} + +// SetDomainMemberships sets the DomainMemberships field's value. +func (s *AwsRdsDbClusterDetails) SetDomainMemberships(v []*AwsRdsDbDomainMembership) *AwsRdsDbClusterDetails { + s.DomainMemberships = v + return s +} + +// SetEnabledCloudWatchLogsExports sets the EnabledCloudWatchLogsExports field's value. +func (s *AwsRdsDbClusterDetails) SetEnabledCloudWatchLogsExports(v []*string) *AwsRdsDbClusterDetails { + s.EnabledCloudWatchLogsExports = v + return s +} + +// SetEndpoint sets the Endpoint field's value. +func (s *AwsRdsDbClusterDetails) SetEndpoint(v string) *AwsRdsDbClusterDetails { + s.Endpoint = &v + return s +} + +// SetEngine sets the Engine field's value. +func (s *AwsRdsDbClusterDetails) SetEngine(v string) *AwsRdsDbClusterDetails { + s.Engine = &v + return s +} + +// SetEngineMode sets the EngineMode field's value. +func (s *AwsRdsDbClusterDetails) SetEngineMode(v string) *AwsRdsDbClusterDetails { + s.EngineMode = &v + return s +} + +// SetEngineVersion sets the EngineVersion field's value. +func (s *AwsRdsDbClusterDetails) SetEngineVersion(v string) *AwsRdsDbClusterDetails { + s.EngineVersion = &v + return s +} + +// SetHostedZoneId sets the HostedZoneId field's value. +func (s *AwsRdsDbClusterDetails) SetHostedZoneId(v string) *AwsRdsDbClusterDetails { + s.HostedZoneId = &v + return s +} + +// SetHttpEndpointEnabled sets the HttpEndpointEnabled field's value. +func (s *AwsRdsDbClusterDetails) SetHttpEndpointEnabled(v bool) *AwsRdsDbClusterDetails { + s.HttpEndpointEnabled = &v + return s +} + +// SetIamDatabaseAuthenticationEnabled sets the IamDatabaseAuthenticationEnabled field's value. +func (s *AwsRdsDbClusterDetails) SetIamDatabaseAuthenticationEnabled(v bool) *AwsRdsDbClusterDetails { + s.IamDatabaseAuthenticationEnabled = &v + return s +} + +// SetKmsKeyId sets the KmsKeyId field's value. +func (s *AwsRdsDbClusterDetails) SetKmsKeyId(v string) *AwsRdsDbClusterDetails { + s.KmsKeyId = &v + return s +} + +// SetMasterUsername sets the MasterUsername field's value. +func (s *AwsRdsDbClusterDetails) SetMasterUsername(v string) *AwsRdsDbClusterDetails { + s.MasterUsername = &v + return s +} + +// SetMultiAz sets the MultiAz field's value. +func (s *AwsRdsDbClusterDetails) SetMultiAz(v bool) *AwsRdsDbClusterDetails { + s.MultiAz = &v + return s +} + +// SetPort sets the Port field's value. +func (s *AwsRdsDbClusterDetails) SetPort(v int64) *AwsRdsDbClusterDetails { + s.Port = &v + return s +} + +// SetPreferredBackupWindow sets the PreferredBackupWindow field's value. +func (s *AwsRdsDbClusterDetails) SetPreferredBackupWindow(v string) *AwsRdsDbClusterDetails { + s.PreferredBackupWindow = &v + return s +} + +// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value. +func (s *AwsRdsDbClusterDetails) SetPreferredMaintenanceWindow(v string) *AwsRdsDbClusterDetails { + s.PreferredMaintenanceWindow = &v + return s +} + +// SetReadReplicaIdentifiers sets the ReadReplicaIdentifiers field's value. +func (s *AwsRdsDbClusterDetails) SetReadReplicaIdentifiers(v []*string) *AwsRdsDbClusterDetails { + s.ReadReplicaIdentifiers = v + return s +} + +// SetReaderEndpoint sets the ReaderEndpoint field's value. +func (s *AwsRdsDbClusterDetails) SetReaderEndpoint(v string) *AwsRdsDbClusterDetails { + s.ReaderEndpoint = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *AwsRdsDbClusterDetails) SetStatus(v string) *AwsRdsDbClusterDetails { + s.Status = &v + return s +} + +// SetStorageEncrypted sets the StorageEncrypted field's value. +func (s *AwsRdsDbClusterDetails) SetStorageEncrypted(v bool) *AwsRdsDbClusterDetails { + s.StorageEncrypted = &v + return s +} + +// SetVpcSecurityGroups sets the VpcSecurityGroups field's value. +func (s *AwsRdsDbClusterDetails) SetVpcSecurityGroups(v []*AwsRdsDbInstanceVpcSecurityGroup) *AwsRdsDbClusterDetails { + s.VpcSecurityGroups = v + return s +} + +// Information about an instance in the DB cluster. +type AwsRdsDbClusterMember struct { + _ struct{} `type:"structure"` + + // The status of the DB cluster parameter group for this member of the DB cluster. + DbClusterParameterGroupStatus *string `type:"string"` + + // The instance identifier for this member of the DB cluster. + DbInstanceIdentifier *string `type:"string"` + + // Whether the cluster member is the primary instance for the DB cluster. + IsClusterWriter *bool `type:"boolean"` + + // Specifies the order in which an Aurora replica is promoted to the primary + // instance when the existing primary instance fails. + PromotionTier *int64 `type:"integer"` +} + +// String returns the string representation +func (s AwsRdsDbClusterMember) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsRdsDbClusterMember) GoString() string { + return s.String() +} + +// SetDbClusterParameterGroupStatus sets the DbClusterParameterGroupStatus field's value. +func (s *AwsRdsDbClusterMember) SetDbClusterParameterGroupStatus(v string) *AwsRdsDbClusterMember { + s.DbClusterParameterGroupStatus = &v + return s +} + +// SetDbInstanceIdentifier sets the DbInstanceIdentifier field's value. +func (s *AwsRdsDbClusterMember) SetDbInstanceIdentifier(v string) *AwsRdsDbClusterMember { + s.DbInstanceIdentifier = &v + return s +} + +// SetIsClusterWriter sets the IsClusterWriter field's value. +func (s *AwsRdsDbClusterMember) SetIsClusterWriter(v bool) *AwsRdsDbClusterMember { + s.IsClusterWriter = &v + return s +} + +// SetPromotionTier sets the PromotionTier field's value. +func (s *AwsRdsDbClusterMember) SetPromotionTier(v int64) *AwsRdsDbClusterMember { + s.PromotionTier = &v + return s +} + +// Information about an option group membership for a DB cluster. +type AwsRdsDbClusterOptionGroupMembership struct { + _ struct{} `type:"structure"` + + // The name of the DB cluster option group. + DbClusterOptionGroupName *string `type:"string"` + + // The status of the DB cluster option group. + Status *string `type:"string"` +} + +// String returns the string representation +func (s AwsRdsDbClusterOptionGroupMembership) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsRdsDbClusterOptionGroupMembership) GoString() string { + return s.String() +} + +// SetDbClusterOptionGroupName sets the DbClusterOptionGroupName field's value. +func (s *AwsRdsDbClusterOptionGroupMembership) SetDbClusterOptionGroupName(v string) *AwsRdsDbClusterOptionGroupMembership { + s.DbClusterOptionGroupName = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *AwsRdsDbClusterOptionGroupMembership) SetStatus(v string) *AwsRdsDbClusterOptionGroupMembership { + s.Status = &v + return s +} + +// Information about an Amazon RDS DB cluster snapshot. +type AwsRdsDbClusterSnapshotDetails struct { + _ struct{} `type:"structure"` + + // Specifies the allocated storage size in gibibytes (GiB). + AllocatedStorage *int64 `type:"integer"` + + // A list of Availability Zones where instances in the DB cluster can be created. + AvailabilityZones []*string `type:"list"` + + // Indicates when the DB cluster was created, in Universal Coordinated Time + // (UTC). + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + ClusterCreateTime *string `type:"string"` + + // The DB cluster identifier. + DbClusterIdentifier *string `type:"string"` + + // The identifier of the DB cluster snapshot. + DbClusterSnapshotIdentifier *string `type:"string"` + + Engine *string `type:"string"` + + // The version of the database engine to use. + EngineVersion *string `type:"string"` + + // Whether mapping of IAM accounts to database accounts is enabled. + IamDatabaseAuthenticationEnabled *bool `type:"boolean"` + + // The ARN of the AWS KMS master key that is used to encrypt the database instances + // in the DB cluster. + KmsKeyId *string `type:"string"` + + // The license model information for this DB cluster snapshot. + LicenseModel *string `type:"string"` + + // The name of the master user for the DB cluster. + MasterUsername *string `type:"string"` + + // Specifies the percentage of the estimated data that has been transferred. + PercentProgress *int64 `type:"integer"` + + // The port number on which the DB instances in the DB cluster accept connections. + Port *int64 `type:"integer"` + + // Indicates when the snapshot was taken. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + SnapshotCreateTime *string `type:"string"` + + // The type of DB cluster snapshot. + SnapshotType *string `type:"string"` + + // The status of this DB cluster snapshot. + Status *string `type:"string"` + + // Whether the DB cluster is encrypted. + StorageEncrypted *bool `type:"boolean"` + + // The VPC ID that is associated with the DB cluster snapshot. + VpcId *string `type:"string"` +} + +// String returns the string representation +func (s AwsRdsDbClusterSnapshotDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsRdsDbClusterSnapshotDetails) GoString() string { + return s.String() +} + +// SetAllocatedStorage sets the AllocatedStorage field's value. +func (s *AwsRdsDbClusterSnapshotDetails) SetAllocatedStorage(v int64) *AwsRdsDbClusterSnapshotDetails { + s.AllocatedStorage = &v + return s +} + +// SetAvailabilityZones sets the AvailabilityZones field's value. +func (s *AwsRdsDbClusterSnapshotDetails) SetAvailabilityZones(v []*string) *AwsRdsDbClusterSnapshotDetails { + s.AvailabilityZones = v + return s +} + +// SetClusterCreateTime sets the ClusterCreateTime field's value. +func (s *AwsRdsDbClusterSnapshotDetails) SetClusterCreateTime(v string) *AwsRdsDbClusterSnapshotDetails { + s.ClusterCreateTime = &v + return s +} + +// SetDbClusterIdentifier sets the DbClusterIdentifier field's value. +func (s *AwsRdsDbClusterSnapshotDetails) SetDbClusterIdentifier(v string) *AwsRdsDbClusterSnapshotDetails { + s.DbClusterIdentifier = &v + return s +} + +// SetDbClusterSnapshotIdentifier sets the DbClusterSnapshotIdentifier field's value. +func (s *AwsRdsDbClusterSnapshotDetails) SetDbClusterSnapshotIdentifier(v string) *AwsRdsDbClusterSnapshotDetails { + s.DbClusterSnapshotIdentifier = &v + return s +} + +// SetEngine sets the Engine field's value. +func (s *AwsRdsDbClusterSnapshotDetails) SetEngine(v string) *AwsRdsDbClusterSnapshotDetails { + s.Engine = &v + return s +} + +// SetEngineVersion sets the EngineVersion field's value. +func (s *AwsRdsDbClusterSnapshotDetails) SetEngineVersion(v string) *AwsRdsDbClusterSnapshotDetails { + s.EngineVersion = &v + return s +} + +// SetIamDatabaseAuthenticationEnabled sets the IamDatabaseAuthenticationEnabled field's value. +func (s *AwsRdsDbClusterSnapshotDetails) SetIamDatabaseAuthenticationEnabled(v bool) *AwsRdsDbClusterSnapshotDetails { + s.IamDatabaseAuthenticationEnabled = &v + return s +} + +// SetKmsKeyId sets the KmsKeyId field's value. +func (s *AwsRdsDbClusterSnapshotDetails) SetKmsKeyId(v string) *AwsRdsDbClusterSnapshotDetails { + s.KmsKeyId = &v + return s +} + +// SetLicenseModel sets the LicenseModel field's value. +func (s *AwsRdsDbClusterSnapshotDetails) SetLicenseModel(v string) *AwsRdsDbClusterSnapshotDetails { + s.LicenseModel = &v + return s +} + +// SetMasterUsername sets the MasterUsername field's value. +func (s *AwsRdsDbClusterSnapshotDetails) SetMasterUsername(v string) *AwsRdsDbClusterSnapshotDetails { + s.MasterUsername = &v + return s +} + +// SetPercentProgress sets the PercentProgress field's value. +func (s *AwsRdsDbClusterSnapshotDetails) SetPercentProgress(v int64) *AwsRdsDbClusterSnapshotDetails { + s.PercentProgress = &v + return s +} + +// SetPort sets the Port field's value. +func (s *AwsRdsDbClusterSnapshotDetails) SetPort(v int64) *AwsRdsDbClusterSnapshotDetails { + s.Port = &v + return s +} + +// SetSnapshotCreateTime sets the SnapshotCreateTime field's value. +func (s *AwsRdsDbClusterSnapshotDetails) SetSnapshotCreateTime(v string) *AwsRdsDbClusterSnapshotDetails { + s.SnapshotCreateTime = &v + return s +} + +// SetSnapshotType sets the SnapshotType field's value. +func (s *AwsRdsDbClusterSnapshotDetails) SetSnapshotType(v string) *AwsRdsDbClusterSnapshotDetails { + s.SnapshotType = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *AwsRdsDbClusterSnapshotDetails) SetStatus(v string) *AwsRdsDbClusterSnapshotDetails { + s.Status = &v + return s +} + +// SetStorageEncrypted sets the StorageEncrypted field's value. +func (s *AwsRdsDbClusterSnapshotDetails) SetStorageEncrypted(v bool) *AwsRdsDbClusterSnapshotDetails { + s.StorageEncrypted = &v + return s +} + +// SetVpcId sets the VpcId field's value. +func (s *AwsRdsDbClusterSnapshotDetails) SetVpcId(v string) *AwsRdsDbClusterSnapshotDetails { + s.VpcId = &v + return s +} + +// Information about an Active Directory domain membership record associated +// with the DB instance. +type AwsRdsDbDomainMembership struct { + _ struct{} `type:"structure"` + + // The identifier of the Active Directory domain. + Domain *string `type:"string"` + + // The fully qualified domain name of the Active Directory domain. + Fqdn *string `type:"string"` + + // The name of the IAM role to use when making API calls to the Directory Service. + IamRoleName *string `type:"string"` + + // The status of the Active Directory Domain membership for the DB instance. + Status *string `type:"string"` +} + +// String returns the string representation +func (s AwsRdsDbDomainMembership) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsRdsDbDomainMembership) GoString() string { + return s.String() +} + +// SetDomain sets the Domain field's value. +func (s *AwsRdsDbDomainMembership) SetDomain(v string) *AwsRdsDbDomainMembership { + s.Domain = &v + return s +} + +// SetFqdn sets the Fqdn field's value. +func (s *AwsRdsDbDomainMembership) SetFqdn(v string) *AwsRdsDbDomainMembership { + s.Fqdn = &v + return s +} + +// SetIamRoleName sets the IamRoleName field's value. +func (s *AwsRdsDbDomainMembership) SetIamRoleName(v string) *AwsRdsDbDomainMembership { + s.IamRoleName = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *AwsRdsDbDomainMembership) SetStatus(v string) *AwsRdsDbDomainMembership { + s.Status = &v + return s +} + +// An AWS Identity and Access Management (IAM) role associated with the DB instance. +type AwsRdsDbInstanceAssociatedRole struct { + _ struct{} `type:"structure"` + + // The name of the feature associated with the IAM)role. + FeatureName *string `type:"string"` + + // The Amazon Resource Name (ARN) of the IAM role that is associated with the + // DB instance. + RoleArn *string `type:"string"` + + // Describes the state of the association between the IAM role and the DB instance. + // The Status property returns one of the following values: + // + // * ACTIVE - The IAM role ARN is associated with the DB instance and can + // be used to access other AWS services on your behalf. + // + // * PENDING - The IAM role ARN is being associated with the DB instance. + // + // * INVALID - The IAM role ARN is associated with the DB instance. But the + // DB instance is unable to assume the IAM role in order to access other + // AWS services on your behalf. + Status *string `type:"string"` +} + +// String returns the string representation +func (s AwsRdsDbInstanceAssociatedRole) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsRdsDbInstanceAssociatedRole) GoString() string { + return s.String() +} + +// SetFeatureName sets the FeatureName field's value. +func (s *AwsRdsDbInstanceAssociatedRole) SetFeatureName(v string) *AwsRdsDbInstanceAssociatedRole { + s.FeatureName = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *AwsRdsDbInstanceAssociatedRole) SetRoleArn(v string) *AwsRdsDbInstanceAssociatedRole { + s.RoleArn = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *AwsRdsDbInstanceAssociatedRole) SetStatus(v string) *AwsRdsDbInstanceAssociatedRole { + s.Status = &v + return s +} + +// Contains the details of an Amazon RDS DB instance. +type AwsRdsDbInstanceDetails struct { + _ struct{} `type:"structure"` + + // The amount of storage (in gigabytes) to initially allocate for the DB instance. + AllocatedStorage *int64 `type:"integer"` + + // The AWS Identity and Access Management (IAM) roles associated with the DB + // instance. + AssociatedRoles []*AwsRdsDbInstanceAssociatedRole `type:"list"` + + // Indicates whether minor version patches are applied automatically. + AutoMinorVersionUpgrade *bool `type:"boolean"` + + // The Availability Zone where the DB instance will be created. + AvailabilityZone *string `type:"string"` + + // The number of days for which to retain automated backups. + BackupRetentionPeriod *int64 `type:"integer"` + + // The identifier of the CA certificate for this DB instance. + CACertificateIdentifier *string `type:"string"` + + // The name of the character set that this DB instance is associated with. + CharacterSetName *string `type:"string"` + + // Whether to copy resource tags to snapshots of the DB instance. + CopyTagsToSnapshot *bool `type:"boolean"` + + // If the DB instance is a member of a DB cluster, contains the name of the + // DB cluster that the DB instance is a member of. + DBClusterIdentifier *string `type:"string"` + + // Contains the name of the compute and memory capacity class of the DB instance. + DBInstanceClass *string `type:"string"` + + // Contains a user-supplied database identifier. This identifier is the unique + // key that identifies a DB instance. + DBInstanceIdentifier *string `type:"string"` + + // The meaning of this parameter differs according to the database engine you + // use. + // + // MySQL, MariaDB, SQL Server, PostgreSQL + // + // Contains the name of the initial database of this instance that was provided + // at create time, if one was specified when the DB instance was created. This + // same name is returned for the life of the DB instance. + // + // Oracle + // + // Contains the Oracle System ID (SID) of the created DB instance. Not shown + // when the returned parameters do not apply to an Oracle DB instance. + DBName *string `type:"string"` + + // Specifies the port that the DB instance listens on. If the DB instance is + // part of a DB cluster, this can be a different port than the DB cluster port. + DbInstancePort *int64 `type:"integer"` + + // The current status of the DB instance. + DbInstanceStatus *string `type:"string"` + + // A list of the DB parameter groups to assign to the DB instance. + DbParameterGroups []*AwsRdsDbParameterGroup `type:"list"` + + // A list of the DB security groups to assign to the DB instance. + DbSecurityGroups []*string `type:"list"` + + // Information about the subnet group that is associated with the DB instance. + DbSubnetGroup *AwsRdsDbSubnetGroup `type:"structure"` + + // The AWS Region-unique, immutable identifier for the DB instance. This identifier + // is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB + // instance is accessed. + DbiResourceId *string `type:"string"` + + // Indicates whether the DB instance has deletion protection enabled. + // + // When deletion protection is enabled, the database cannot be deleted. + DeletionProtection *bool `type:"boolean"` + + // The Active Directory domain membership records associated with the DB instance. + DomainMemberships []*AwsRdsDbDomainMembership `type:"list"` + + // A list of log types that this DB instance is configured to export to CloudWatch + // Logs. + EnabledCloudWatchLogsExports []*string `type:"list"` + + // Specifies the connection endpoint. + Endpoint *AwsRdsDbInstanceEndpoint `type:"structure"` + + // Provides the name of the database engine to use for this DB instance. + Engine *string `type:"string"` + + // Indicates the database engine version. + EngineVersion *string `type:"string"` + + // The ARN of the CloudWatch Logs log stream that receives the enhanced monitoring + // metrics data for the DB instance. + EnhancedMonitoringResourceArn *string `type:"string"` + + // True if mapping of AWS Identity and Access Management (IAM) accounts to database + // accounts is enabled, and otherwise false. + // + // IAM database authentication can be enabled for the following database engines. + // + // * For MySQL 5.6, minor version 5.6.34 or higher + // + // * For MySQL 5.7, minor version 5.7.16 or higher + // + // * Aurora 5.6 or higher + IAMDatabaseAuthenticationEnabled *bool `type:"boolean"` + + // Indicates when the DB instance was created. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + InstanceCreateTime *string `type:"string"` + + // Specifies the provisioned IOPS (I/O operations per second) for this DB instance. + Iops *int64 `type:"integer"` + + // If StorageEncrypted is true, the AWS KMS key identifier for the encrypted + // DB instance. + KmsKeyId *string `type:"string"` + + // Specifies the latest time to which a database can be restored with point-in-time + // restore. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + LatestRestorableTime *string `type:"string"` + + // License model information for this DB instance. + LicenseModel *string `type:"string"` + + // Specifies the connection endpoint. + ListenerEndpoint *AwsRdsDbInstanceEndpoint `type:"structure"` + + // The master user name of the DB instance. + MasterUsername *string `type:"string"` + + // The upper limit to which Amazon RDS can automatically scale the storage of + // the DB instance. + MaxAllocatedStorage *int64 `type:"integer"` + + // The interval, in seconds, between points when enhanced monitoring metrics + // are collected for the DB instance. + MonitoringInterval *int64 `type:"integer"` + + // The ARN for the IAM role that permits Amazon RDS to send enhanced monitoring + // metrics to CloudWatch Logs. + MonitoringRoleArn *string `type:"string"` + + // Whether the DB instance is a multiple Availability Zone deployment. + MultiAz *bool `type:"boolean"` + + // The list of option group memberships for this DB instance. + OptionGroupMemberships []*AwsRdsDbOptionGroupMembership `type:"list"` + + // Changes to the DB instance that are currently pending. + PendingModifiedValues *AwsRdsDbPendingModifiedValues `type:"structure"` + + // Indicates whether Performance Insights is enabled for the DB instance. + PerformanceInsightsEnabled *bool `type:"boolean"` // The identifier of the AWS KMS key used to encrypt the Performance Insights // data. PerformanceInsightsKmsKeyId *string `type:"string"` - // The number of days to retain Performance Insights data. - PerformanceInsightsRetentionPeriod *int64 `type:"integer"` + // The number of days to retain Performance Insights data. + PerformanceInsightsRetentionPeriod *int64 `type:"integer"` + + // The range of time each day when automated backups are created, if automated + // backups are enabled. + // + // Uses the format HH:MM-HH:MM. For example, 04:52-05:22. + PreferredBackupWindow *string `type:"string"` + + // The weekly time range during which system maintenance can occur, in Universal + // Coordinated Time (UTC). + // + // Uses the format :HH:MM-:HH:MM. + // + // For the day values, use mon|tue|wed|thu|fri|sat|sun. + // + // For example, sun:09:32-sun:10:02. + PreferredMaintenanceWindow *string `type:"string"` + + // The number of CPU cores and the number of threads per core for the DB instance + // class of the DB instance. + ProcessorFeatures []*AwsRdsDbProcessorFeature `type:"list"` + + // The order in which to promote an Aurora replica to the primary instance after + // a failure of the existing primary instance. + PromotionTier *int64 `type:"integer"` + + // Specifies the accessibility options for the DB instance. + // + // A value of true specifies an Internet-facing instance with a publicly resolvable + // DNS name, which resolves to a public IP address. + // + // A value of false specifies an internal instance with a DNS name that resolves + // to a private IP address. + PubliclyAccessible *bool `type:"boolean"` + + // List of identifiers of Aurora DB clusters to which the RDS DB instance is + // replicated as a read replica. + ReadReplicaDBClusterIdentifiers []*string `type:"list"` + + // List of identifiers of the read replicas associated with this DB instance. + ReadReplicaDBInstanceIdentifiers []*string `type:"list"` + + // If this DB instance is a read replica, contains the identifier of the source + // DB instance. + ReadReplicaSourceDBInstanceIdentifier *string `type:"string"` + + // For a DB instance with multi-Availability Zone support, the name of the secondary + // Availability Zone. + SecondaryAvailabilityZone *string `type:"string"` + + // The status of a read replica. If the instance isn't a read replica, this + // is empty. + StatusInfos []*AwsRdsDbStatusInfo `type:"list"` + + // Specifies whether the DB instance is encrypted. + StorageEncrypted *bool `type:"boolean"` + + // The storage type for the DB instance. + StorageType *string `type:"string"` + + // The ARN from the key store with which the instance is associated for TDE + // encryption. + TdeCredentialArn *string `type:"string"` + + // The time zone of the DB instance. + Timezone *string `type:"string"` + + // A list of VPC security groups that the DB instance belongs to. + VpcSecurityGroups []*AwsRdsDbInstanceVpcSecurityGroup `type:"list"` +} + +// String returns the string representation +func (s AwsRdsDbInstanceDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsRdsDbInstanceDetails) GoString() string { + return s.String() +} + +// SetAllocatedStorage sets the AllocatedStorage field's value. +func (s *AwsRdsDbInstanceDetails) SetAllocatedStorage(v int64) *AwsRdsDbInstanceDetails { + s.AllocatedStorage = &v + return s +} + +// SetAssociatedRoles sets the AssociatedRoles field's value. +func (s *AwsRdsDbInstanceDetails) SetAssociatedRoles(v []*AwsRdsDbInstanceAssociatedRole) *AwsRdsDbInstanceDetails { + s.AssociatedRoles = v + return s +} + +// SetAutoMinorVersionUpgrade sets the AutoMinorVersionUpgrade field's value. +func (s *AwsRdsDbInstanceDetails) SetAutoMinorVersionUpgrade(v bool) *AwsRdsDbInstanceDetails { + s.AutoMinorVersionUpgrade = &v + return s +} + +// SetAvailabilityZone sets the AvailabilityZone field's value. +func (s *AwsRdsDbInstanceDetails) SetAvailabilityZone(v string) *AwsRdsDbInstanceDetails { + s.AvailabilityZone = &v + return s +} + +// SetBackupRetentionPeriod sets the BackupRetentionPeriod field's value. +func (s *AwsRdsDbInstanceDetails) SetBackupRetentionPeriod(v int64) *AwsRdsDbInstanceDetails { + s.BackupRetentionPeriod = &v + return s +} + +// SetCACertificateIdentifier sets the CACertificateIdentifier field's value. +func (s *AwsRdsDbInstanceDetails) SetCACertificateIdentifier(v string) *AwsRdsDbInstanceDetails { + s.CACertificateIdentifier = &v + return s +} + +// SetCharacterSetName sets the CharacterSetName field's value. +func (s *AwsRdsDbInstanceDetails) SetCharacterSetName(v string) *AwsRdsDbInstanceDetails { + s.CharacterSetName = &v + return s +} + +// SetCopyTagsToSnapshot sets the CopyTagsToSnapshot field's value. +func (s *AwsRdsDbInstanceDetails) SetCopyTagsToSnapshot(v bool) *AwsRdsDbInstanceDetails { + s.CopyTagsToSnapshot = &v + return s +} + +// SetDBClusterIdentifier sets the DBClusterIdentifier field's value. +func (s *AwsRdsDbInstanceDetails) SetDBClusterIdentifier(v string) *AwsRdsDbInstanceDetails { + s.DBClusterIdentifier = &v + return s +} + +// SetDBInstanceClass sets the DBInstanceClass field's value. +func (s *AwsRdsDbInstanceDetails) SetDBInstanceClass(v string) *AwsRdsDbInstanceDetails { + s.DBInstanceClass = &v + return s +} + +// SetDBInstanceIdentifier sets the DBInstanceIdentifier field's value. +func (s *AwsRdsDbInstanceDetails) SetDBInstanceIdentifier(v string) *AwsRdsDbInstanceDetails { + s.DBInstanceIdentifier = &v + return s +} + +// SetDBName sets the DBName field's value. +func (s *AwsRdsDbInstanceDetails) SetDBName(v string) *AwsRdsDbInstanceDetails { + s.DBName = &v + return s +} + +// SetDbInstancePort sets the DbInstancePort field's value. +func (s *AwsRdsDbInstanceDetails) SetDbInstancePort(v int64) *AwsRdsDbInstanceDetails { + s.DbInstancePort = &v + return s +} + +// SetDbInstanceStatus sets the DbInstanceStatus field's value. +func (s *AwsRdsDbInstanceDetails) SetDbInstanceStatus(v string) *AwsRdsDbInstanceDetails { + s.DbInstanceStatus = &v + return s +} + +// SetDbParameterGroups sets the DbParameterGroups field's value. +func (s *AwsRdsDbInstanceDetails) SetDbParameterGroups(v []*AwsRdsDbParameterGroup) *AwsRdsDbInstanceDetails { + s.DbParameterGroups = v + return s +} + +// SetDbSecurityGroups sets the DbSecurityGroups field's value. +func (s *AwsRdsDbInstanceDetails) SetDbSecurityGroups(v []*string) *AwsRdsDbInstanceDetails { + s.DbSecurityGroups = v + return s +} + +// SetDbSubnetGroup sets the DbSubnetGroup field's value. +func (s *AwsRdsDbInstanceDetails) SetDbSubnetGroup(v *AwsRdsDbSubnetGroup) *AwsRdsDbInstanceDetails { + s.DbSubnetGroup = v + return s +} + +// SetDbiResourceId sets the DbiResourceId field's value. +func (s *AwsRdsDbInstanceDetails) SetDbiResourceId(v string) *AwsRdsDbInstanceDetails { + s.DbiResourceId = &v + return s +} + +// SetDeletionProtection sets the DeletionProtection field's value. +func (s *AwsRdsDbInstanceDetails) SetDeletionProtection(v bool) *AwsRdsDbInstanceDetails { + s.DeletionProtection = &v + return s +} + +// SetDomainMemberships sets the DomainMemberships field's value. +func (s *AwsRdsDbInstanceDetails) SetDomainMemberships(v []*AwsRdsDbDomainMembership) *AwsRdsDbInstanceDetails { + s.DomainMemberships = v + return s +} + +// SetEnabledCloudWatchLogsExports sets the EnabledCloudWatchLogsExports field's value. +func (s *AwsRdsDbInstanceDetails) SetEnabledCloudWatchLogsExports(v []*string) *AwsRdsDbInstanceDetails { + s.EnabledCloudWatchLogsExports = v + return s +} + +// SetEndpoint sets the Endpoint field's value. +func (s *AwsRdsDbInstanceDetails) SetEndpoint(v *AwsRdsDbInstanceEndpoint) *AwsRdsDbInstanceDetails { + s.Endpoint = v + return s +} + +// SetEngine sets the Engine field's value. +func (s *AwsRdsDbInstanceDetails) SetEngine(v string) *AwsRdsDbInstanceDetails { + s.Engine = &v + return s +} + +// SetEngineVersion sets the EngineVersion field's value. +func (s *AwsRdsDbInstanceDetails) SetEngineVersion(v string) *AwsRdsDbInstanceDetails { + s.EngineVersion = &v + return s +} + +// SetEnhancedMonitoringResourceArn sets the EnhancedMonitoringResourceArn field's value. +func (s *AwsRdsDbInstanceDetails) SetEnhancedMonitoringResourceArn(v string) *AwsRdsDbInstanceDetails { + s.EnhancedMonitoringResourceArn = &v + return s +} + +// SetIAMDatabaseAuthenticationEnabled sets the IAMDatabaseAuthenticationEnabled field's value. +func (s *AwsRdsDbInstanceDetails) SetIAMDatabaseAuthenticationEnabled(v bool) *AwsRdsDbInstanceDetails { + s.IAMDatabaseAuthenticationEnabled = &v + return s +} + +// SetInstanceCreateTime sets the InstanceCreateTime field's value. +func (s *AwsRdsDbInstanceDetails) SetInstanceCreateTime(v string) *AwsRdsDbInstanceDetails { + s.InstanceCreateTime = &v + return s +} + +// SetIops sets the Iops field's value. +func (s *AwsRdsDbInstanceDetails) SetIops(v int64) *AwsRdsDbInstanceDetails { + s.Iops = &v + return s +} + +// SetKmsKeyId sets the KmsKeyId field's value. +func (s *AwsRdsDbInstanceDetails) SetKmsKeyId(v string) *AwsRdsDbInstanceDetails { + s.KmsKeyId = &v + return s +} + +// SetLatestRestorableTime sets the LatestRestorableTime field's value. +func (s *AwsRdsDbInstanceDetails) SetLatestRestorableTime(v string) *AwsRdsDbInstanceDetails { + s.LatestRestorableTime = &v + return s +} + +// SetLicenseModel sets the LicenseModel field's value. +func (s *AwsRdsDbInstanceDetails) SetLicenseModel(v string) *AwsRdsDbInstanceDetails { + s.LicenseModel = &v + return s +} + +// SetListenerEndpoint sets the ListenerEndpoint field's value. +func (s *AwsRdsDbInstanceDetails) SetListenerEndpoint(v *AwsRdsDbInstanceEndpoint) *AwsRdsDbInstanceDetails { + s.ListenerEndpoint = v + return s +} + +// SetMasterUsername sets the MasterUsername field's value. +func (s *AwsRdsDbInstanceDetails) SetMasterUsername(v string) *AwsRdsDbInstanceDetails { + s.MasterUsername = &v + return s +} + +// SetMaxAllocatedStorage sets the MaxAllocatedStorage field's value. +func (s *AwsRdsDbInstanceDetails) SetMaxAllocatedStorage(v int64) *AwsRdsDbInstanceDetails { + s.MaxAllocatedStorage = &v + return s +} + +// SetMonitoringInterval sets the MonitoringInterval field's value. +func (s *AwsRdsDbInstanceDetails) SetMonitoringInterval(v int64) *AwsRdsDbInstanceDetails { + s.MonitoringInterval = &v + return s +} + +// SetMonitoringRoleArn sets the MonitoringRoleArn field's value. +func (s *AwsRdsDbInstanceDetails) SetMonitoringRoleArn(v string) *AwsRdsDbInstanceDetails { + s.MonitoringRoleArn = &v + return s +} + +// SetMultiAz sets the MultiAz field's value. +func (s *AwsRdsDbInstanceDetails) SetMultiAz(v bool) *AwsRdsDbInstanceDetails { + s.MultiAz = &v + return s +} + +// SetOptionGroupMemberships sets the OptionGroupMemberships field's value. +func (s *AwsRdsDbInstanceDetails) SetOptionGroupMemberships(v []*AwsRdsDbOptionGroupMembership) *AwsRdsDbInstanceDetails { + s.OptionGroupMemberships = v + return s +} + +// SetPendingModifiedValues sets the PendingModifiedValues field's value. +func (s *AwsRdsDbInstanceDetails) SetPendingModifiedValues(v *AwsRdsDbPendingModifiedValues) *AwsRdsDbInstanceDetails { + s.PendingModifiedValues = v + return s +} + +// SetPerformanceInsightsEnabled sets the PerformanceInsightsEnabled field's value. +func (s *AwsRdsDbInstanceDetails) SetPerformanceInsightsEnabled(v bool) *AwsRdsDbInstanceDetails { + s.PerformanceInsightsEnabled = &v + return s +} + +// SetPerformanceInsightsKmsKeyId sets the PerformanceInsightsKmsKeyId field's value. +func (s *AwsRdsDbInstanceDetails) SetPerformanceInsightsKmsKeyId(v string) *AwsRdsDbInstanceDetails { + s.PerformanceInsightsKmsKeyId = &v + return s +} + +// SetPerformanceInsightsRetentionPeriod sets the PerformanceInsightsRetentionPeriod field's value. +func (s *AwsRdsDbInstanceDetails) SetPerformanceInsightsRetentionPeriod(v int64) *AwsRdsDbInstanceDetails { + s.PerformanceInsightsRetentionPeriod = &v + return s +} + +// SetPreferredBackupWindow sets the PreferredBackupWindow field's value. +func (s *AwsRdsDbInstanceDetails) SetPreferredBackupWindow(v string) *AwsRdsDbInstanceDetails { + s.PreferredBackupWindow = &v + return s +} + +// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value. +func (s *AwsRdsDbInstanceDetails) SetPreferredMaintenanceWindow(v string) *AwsRdsDbInstanceDetails { + s.PreferredMaintenanceWindow = &v + return s +} + +// SetProcessorFeatures sets the ProcessorFeatures field's value. +func (s *AwsRdsDbInstanceDetails) SetProcessorFeatures(v []*AwsRdsDbProcessorFeature) *AwsRdsDbInstanceDetails { + s.ProcessorFeatures = v + return s +} + +// SetPromotionTier sets the PromotionTier field's value. +func (s *AwsRdsDbInstanceDetails) SetPromotionTier(v int64) *AwsRdsDbInstanceDetails { + s.PromotionTier = &v + return s +} + +// SetPubliclyAccessible sets the PubliclyAccessible field's value. +func (s *AwsRdsDbInstanceDetails) SetPubliclyAccessible(v bool) *AwsRdsDbInstanceDetails { + s.PubliclyAccessible = &v + return s +} + +// SetReadReplicaDBClusterIdentifiers sets the ReadReplicaDBClusterIdentifiers field's value. +func (s *AwsRdsDbInstanceDetails) SetReadReplicaDBClusterIdentifiers(v []*string) *AwsRdsDbInstanceDetails { + s.ReadReplicaDBClusterIdentifiers = v + return s +} + +// SetReadReplicaDBInstanceIdentifiers sets the ReadReplicaDBInstanceIdentifiers field's value. +func (s *AwsRdsDbInstanceDetails) SetReadReplicaDBInstanceIdentifiers(v []*string) *AwsRdsDbInstanceDetails { + s.ReadReplicaDBInstanceIdentifiers = v + return s +} + +// SetReadReplicaSourceDBInstanceIdentifier sets the ReadReplicaSourceDBInstanceIdentifier field's value. +func (s *AwsRdsDbInstanceDetails) SetReadReplicaSourceDBInstanceIdentifier(v string) *AwsRdsDbInstanceDetails { + s.ReadReplicaSourceDBInstanceIdentifier = &v + return s +} + +// SetSecondaryAvailabilityZone sets the SecondaryAvailabilityZone field's value. +func (s *AwsRdsDbInstanceDetails) SetSecondaryAvailabilityZone(v string) *AwsRdsDbInstanceDetails { + s.SecondaryAvailabilityZone = &v + return s +} + +// SetStatusInfos sets the StatusInfos field's value. +func (s *AwsRdsDbInstanceDetails) SetStatusInfos(v []*AwsRdsDbStatusInfo) *AwsRdsDbInstanceDetails { + s.StatusInfos = v + return s +} + +// SetStorageEncrypted sets the StorageEncrypted field's value. +func (s *AwsRdsDbInstanceDetails) SetStorageEncrypted(v bool) *AwsRdsDbInstanceDetails { + s.StorageEncrypted = &v + return s +} + +// SetStorageType sets the StorageType field's value. +func (s *AwsRdsDbInstanceDetails) SetStorageType(v string) *AwsRdsDbInstanceDetails { + s.StorageType = &v + return s +} + +// SetTdeCredentialArn sets the TdeCredentialArn field's value. +func (s *AwsRdsDbInstanceDetails) SetTdeCredentialArn(v string) *AwsRdsDbInstanceDetails { + s.TdeCredentialArn = &v + return s +} + +// SetTimezone sets the Timezone field's value. +func (s *AwsRdsDbInstanceDetails) SetTimezone(v string) *AwsRdsDbInstanceDetails { + s.Timezone = &v + return s +} + +// SetVpcSecurityGroups sets the VpcSecurityGroups field's value. +func (s *AwsRdsDbInstanceDetails) SetVpcSecurityGroups(v []*AwsRdsDbInstanceVpcSecurityGroup) *AwsRdsDbInstanceDetails { + s.VpcSecurityGroups = v + return s +} + +// Specifies the connection endpoint. +type AwsRdsDbInstanceEndpoint struct { + _ struct{} `type:"structure"` + + // Specifies the DNS address of the DB instance. + Address *string `type:"string"` + + // Specifies the ID that Amazon Route 53 assigns when you create a hosted zone. + HostedZoneId *string `type:"string"` + + // Specifies the port that the database engine is listening on. + Port *int64 `type:"integer"` +} + +// String returns the string representation +func (s AwsRdsDbInstanceEndpoint) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsRdsDbInstanceEndpoint) GoString() string { + return s.String() +} + +// SetAddress sets the Address field's value. +func (s *AwsRdsDbInstanceEndpoint) SetAddress(v string) *AwsRdsDbInstanceEndpoint { + s.Address = &v + return s +} + +// SetHostedZoneId sets the HostedZoneId field's value. +func (s *AwsRdsDbInstanceEndpoint) SetHostedZoneId(v string) *AwsRdsDbInstanceEndpoint { + s.HostedZoneId = &v + return s +} + +// SetPort sets the Port field's value. +func (s *AwsRdsDbInstanceEndpoint) SetPort(v int64) *AwsRdsDbInstanceEndpoint { + s.Port = &v + return s +} + +// A VPC security groups that the DB instance belongs to. +type AwsRdsDbInstanceVpcSecurityGroup struct { + _ struct{} `type:"structure"` + + // The status of the VPC security group. + Status *string `type:"string"` + + // The name of the VPC security group. + VpcSecurityGroupId *string `type:"string"` +} + +// String returns the string representation +func (s AwsRdsDbInstanceVpcSecurityGroup) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsRdsDbInstanceVpcSecurityGroup) GoString() string { + return s.String() +} + +// SetStatus sets the Status field's value. +func (s *AwsRdsDbInstanceVpcSecurityGroup) SetStatus(v string) *AwsRdsDbInstanceVpcSecurityGroup { + s.Status = &v + return s +} + +// SetVpcSecurityGroupId sets the VpcSecurityGroupId field's value. +func (s *AwsRdsDbInstanceVpcSecurityGroup) SetVpcSecurityGroupId(v string) *AwsRdsDbInstanceVpcSecurityGroup { + s.VpcSecurityGroupId = &v + return s +} + +type AwsRdsDbOptionGroupMembership struct { + _ struct{} `type:"structure"` + + OptionGroupName *string `type:"string"` + + Status *string `type:"string"` +} + +// String returns the string representation +func (s AwsRdsDbOptionGroupMembership) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsRdsDbOptionGroupMembership) GoString() string { + return s.String() +} + +// SetOptionGroupName sets the OptionGroupName field's value. +func (s *AwsRdsDbOptionGroupMembership) SetOptionGroupName(v string) *AwsRdsDbOptionGroupMembership { + s.OptionGroupName = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *AwsRdsDbOptionGroupMembership) SetStatus(v string) *AwsRdsDbOptionGroupMembership { + s.Status = &v + return s +} + +type AwsRdsDbParameterGroup struct { + _ struct{} `type:"structure"` + + DbParameterGroupName *string `type:"string"` + + ParameterApplyStatus *string `type:"string"` +} + +// String returns the string representation +func (s AwsRdsDbParameterGroup) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsRdsDbParameterGroup) GoString() string { + return s.String() +} + +// SetDbParameterGroupName sets the DbParameterGroupName field's value. +func (s *AwsRdsDbParameterGroup) SetDbParameterGroupName(v string) *AwsRdsDbParameterGroup { + s.DbParameterGroupName = &v + return s +} + +// SetParameterApplyStatus sets the ParameterApplyStatus field's value. +func (s *AwsRdsDbParameterGroup) SetParameterApplyStatus(v string) *AwsRdsDbParameterGroup { + s.ParameterApplyStatus = &v + return s +} + +type AwsRdsDbPendingModifiedValues struct { + _ struct{} `type:"structure"` + + AllocatedStorage *int64 `type:"integer"` + + BackupRetentionPeriod *int64 `type:"integer"` + + CaCertificateIdentifier *string `type:"string"` + + DbInstanceClass *string `type:"string"` + + DbInstanceIdentifier *string `type:"string"` + + DbSubnetGroupName *string `type:"string"` + + EngineVersion *string `type:"string"` + + Iops *int64 `type:"integer"` + + LicenseModel *string `type:"string"` + + MasterUserPassword *string `type:"string"` + + MultiAZ *bool `type:"boolean"` + + // Identifies the log types to enable and disable. + PendingCloudWatchLogsExports *AwsRdsPendingCloudWatchLogsExports `type:"structure"` + + Port *int64 `type:"integer"` + + ProcessorFeatures []*AwsRdsDbProcessorFeature `type:"list"` + + StorageType *string `type:"string"` +} + +// String returns the string representation +func (s AwsRdsDbPendingModifiedValues) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsRdsDbPendingModifiedValues) GoString() string { + return s.String() +} + +// SetAllocatedStorage sets the AllocatedStorage field's value. +func (s *AwsRdsDbPendingModifiedValues) SetAllocatedStorage(v int64) *AwsRdsDbPendingModifiedValues { + s.AllocatedStorage = &v + return s +} + +// SetBackupRetentionPeriod sets the BackupRetentionPeriod field's value. +func (s *AwsRdsDbPendingModifiedValues) SetBackupRetentionPeriod(v int64) *AwsRdsDbPendingModifiedValues { + s.BackupRetentionPeriod = &v + return s +} + +// SetCaCertificateIdentifier sets the CaCertificateIdentifier field's value. +func (s *AwsRdsDbPendingModifiedValues) SetCaCertificateIdentifier(v string) *AwsRdsDbPendingModifiedValues { + s.CaCertificateIdentifier = &v + return s +} + +// SetDbInstanceClass sets the DbInstanceClass field's value. +func (s *AwsRdsDbPendingModifiedValues) SetDbInstanceClass(v string) *AwsRdsDbPendingModifiedValues { + s.DbInstanceClass = &v + return s +} + +// SetDbInstanceIdentifier sets the DbInstanceIdentifier field's value. +func (s *AwsRdsDbPendingModifiedValues) SetDbInstanceIdentifier(v string) *AwsRdsDbPendingModifiedValues { + s.DbInstanceIdentifier = &v + return s +} + +// SetDbSubnetGroupName sets the DbSubnetGroupName field's value. +func (s *AwsRdsDbPendingModifiedValues) SetDbSubnetGroupName(v string) *AwsRdsDbPendingModifiedValues { + s.DbSubnetGroupName = &v + return s +} + +// SetEngineVersion sets the EngineVersion field's value. +func (s *AwsRdsDbPendingModifiedValues) SetEngineVersion(v string) *AwsRdsDbPendingModifiedValues { + s.EngineVersion = &v + return s +} + +// SetIops sets the Iops field's value. +func (s *AwsRdsDbPendingModifiedValues) SetIops(v int64) *AwsRdsDbPendingModifiedValues { + s.Iops = &v + return s +} + +// SetLicenseModel sets the LicenseModel field's value. +func (s *AwsRdsDbPendingModifiedValues) SetLicenseModel(v string) *AwsRdsDbPendingModifiedValues { + s.LicenseModel = &v + return s +} + +// SetMasterUserPassword sets the MasterUserPassword field's value. +func (s *AwsRdsDbPendingModifiedValues) SetMasterUserPassword(v string) *AwsRdsDbPendingModifiedValues { + s.MasterUserPassword = &v + return s +} + +// SetMultiAZ sets the MultiAZ field's value. +func (s *AwsRdsDbPendingModifiedValues) SetMultiAZ(v bool) *AwsRdsDbPendingModifiedValues { + s.MultiAZ = &v + return s +} + +// SetPendingCloudWatchLogsExports sets the PendingCloudWatchLogsExports field's value. +func (s *AwsRdsDbPendingModifiedValues) SetPendingCloudWatchLogsExports(v *AwsRdsPendingCloudWatchLogsExports) *AwsRdsDbPendingModifiedValues { + s.PendingCloudWatchLogsExports = v + return s +} + +// SetPort sets the Port field's value. +func (s *AwsRdsDbPendingModifiedValues) SetPort(v int64) *AwsRdsDbPendingModifiedValues { + s.Port = &v + return s +} + +// SetProcessorFeatures sets the ProcessorFeatures field's value. +func (s *AwsRdsDbPendingModifiedValues) SetProcessorFeatures(v []*AwsRdsDbProcessorFeature) *AwsRdsDbPendingModifiedValues { + s.ProcessorFeatures = v + return s +} + +// SetStorageType sets the StorageType field's value. +func (s *AwsRdsDbPendingModifiedValues) SetStorageType(v string) *AwsRdsDbPendingModifiedValues { + s.StorageType = &v + return s +} - // The range of time each day when automated backups are created, if automated - // backups are enabled. - // - // Uses the format HH:MM-HH:MM. For example, 04:52-05:22. - PreferredBackupWindow *string `type:"string"` +type AwsRdsDbProcessorFeature struct { + _ struct{} `type:"structure"` - // The weekly time range during which system maintenance can occur, in Universal - // Coordinated Time (UTC). - // - // Uses the format :HH:MM-:HH:MM. - // - // For the day values, use mon|tue|wed|thu|fri|sat|sun. - // - // For example, sun:09:32-sun:10:02. - PreferredMaintenanceWindow *string `type:"string"` + Name *string `type:"string"` - // The number of CPU cores and the number of threads per core for the DB instance - // class of the DB instance. - ProcessorFeatures []*AwsRdsDbProcessorFeature `type:"list"` + Value *string `type:"string"` +} - // The order in which to promote an Aurora replica to the primary instance after - // a failure of the existing primary instance. - PromotionTier *int64 `type:"integer"` +// String returns the string representation +func (s AwsRdsDbProcessorFeature) String() string { + return awsutil.Prettify(s) +} - // Specifies the accessibility options for the DB instance. - // - // A value of true specifies an Internet-facing instance with a publicly resolvable - // DNS name, which resolves to a public IP address. - // - // A value of false specifies an internal instance with a DNS name that resolves - // to a private IP address. - PubliclyAccessible *bool `type:"boolean"` +// GoString returns the string representation +func (s AwsRdsDbProcessorFeature) GoString() string { + return s.String() +} - // List of identifiers of Aurora DB clusters to which the RDS DB instance is - // replicated as a read replica. - ReadReplicaDBClusterIdentifiers []*string `type:"list"` +// SetName sets the Name field's value. +func (s *AwsRdsDbProcessorFeature) SetName(v string) *AwsRdsDbProcessorFeature { + s.Name = &v + return s +} - // List of identifiers of the read replicas associated with this DB instance. - ReadReplicaDBInstanceIdentifiers []*string `type:"list"` +// SetValue sets the Value field's value. +func (s *AwsRdsDbProcessorFeature) SetValue(v string) *AwsRdsDbProcessorFeature { + s.Value = &v + return s +} - // If this DB instance is a read replica, contains the identifier of the source - // DB instance. - ReadReplicaSourceDBInstanceIdentifier *string `type:"string"` +type AwsRdsDbSnapshotDetails struct { + _ struct{} `type:"structure"` - // For a DB instance with multi-Availability Zone support, the name of the secondary - // Availability Zone. - SecondaryAvailabilityZone *string `type:"string"` + AllocatedStorage *int64 `type:"integer"` - // The status of a read replica. If the instance isn't a read replica, this - // is empty. - StatusInfos []*AwsRdsDbStatusInfo `type:"list"` + AvailabilityZone *string `type:"string"` - // Specifies whether the DB instance is encrypted. - StorageEncrypted *bool `type:"boolean"` + DbInstanceIdentifier *string `type:"string"` + + DbSnapshotIdentifier *string `type:"string"` + + DbiResourceId *string `type:"string"` + + Encrypted *bool `type:"boolean"` + + Engine *string `type:"string"` + + EngineVersion *string `type:"string"` + + IamDatabaseAuthenticationEnabled *bool `type:"boolean"` + + InstanceCreateTime *string `type:"string"` + + Iops *int64 `type:"integer"` + + KmsKeyId *string `type:"string"` + + LicenseModel *string `type:"string"` + + MasterUsername *string `type:"string"` + + OptionGroupName *string `type:"string"` + + PercentProgress *int64 `type:"integer"` + + Port *int64 `type:"integer"` + + ProcessorFeatures []*AwsRdsDbProcessorFeature `type:"list"` + + SnapshotCreateTime *string `type:"string"` + + SnapshotType *string `type:"string"` + + SourceDbSnapshotIdentifier *string `type:"string"` + + SourceRegion *string `type:"string"` + + Status *string `type:"string"` - // The storage type for the DB instance. StorageType *string `type:"string"` - // The ARN from the key store with which the instance is associated for TDE - // encryption. TdeCredentialArn *string `type:"string"` - // The time zone of the DB instance. Timezone *string `type:"string"` - // A list of VPC security groups that the DB instance belongs to. - VpcSecurityGroups []*AwsRdsDbInstanceVpcSecurityGroup `type:"list"` + VpcId *string `type:"string"` } // String returns the string representation -func (s AwsRdsDbInstanceDetails) String() string { +func (s AwsRdsDbSnapshotDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsRdsDbInstanceDetails) GoString() string { +func (s AwsRdsDbSnapshotDetails) GoString() string { return s.String() } // SetAllocatedStorage sets the AllocatedStorage field's value. -func (s *AwsRdsDbInstanceDetails) SetAllocatedStorage(v int64) *AwsRdsDbInstanceDetails { +func (s *AwsRdsDbSnapshotDetails) SetAllocatedStorage(v int64) *AwsRdsDbSnapshotDetails { s.AllocatedStorage = &v return s } -// SetAssociatedRoles sets the AssociatedRoles field's value. -func (s *AwsRdsDbInstanceDetails) SetAssociatedRoles(v []*AwsRdsDbInstanceAssociatedRole) *AwsRdsDbInstanceDetails { - s.AssociatedRoles = v +// SetAvailabilityZone sets the AvailabilityZone field's value. +func (s *AwsRdsDbSnapshotDetails) SetAvailabilityZone(v string) *AwsRdsDbSnapshotDetails { + s.AvailabilityZone = &v return s } -// SetAutoMinorVersionUpgrade sets the AutoMinorVersionUpgrade field's value. -func (s *AwsRdsDbInstanceDetails) SetAutoMinorVersionUpgrade(v bool) *AwsRdsDbInstanceDetails { - s.AutoMinorVersionUpgrade = &v +// SetDbInstanceIdentifier sets the DbInstanceIdentifier field's value. +func (s *AwsRdsDbSnapshotDetails) SetDbInstanceIdentifier(v string) *AwsRdsDbSnapshotDetails { + s.DbInstanceIdentifier = &v return s } -// SetAvailabilityZone sets the AvailabilityZone field's value. -func (s *AwsRdsDbInstanceDetails) SetAvailabilityZone(v string) *AwsRdsDbInstanceDetails { - s.AvailabilityZone = &v +// SetDbSnapshotIdentifier sets the DbSnapshotIdentifier field's value. +func (s *AwsRdsDbSnapshotDetails) SetDbSnapshotIdentifier(v string) *AwsRdsDbSnapshotDetails { + s.DbSnapshotIdentifier = &v return s } -// SetBackupRetentionPeriod sets the BackupRetentionPeriod field's value. -func (s *AwsRdsDbInstanceDetails) SetBackupRetentionPeriod(v int64) *AwsRdsDbInstanceDetails { - s.BackupRetentionPeriod = &v +// SetDbiResourceId sets the DbiResourceId field's value. +func (s *AwsRdsDbSnapshotDetails) SetDbiResourceId(v string) *AwsRdsDbSnapshotDetails { + s.DbiResourceId = &v return s } -// SetCACertificateIdentifier sets the CACertificateIdentifier field's value. -func (s *AwsRdsDbInstanceDetails) SetCACertificateIdentifier(v string) *AwsRdsDbInstanceDetails { - s.CACertificateIdentifier = &v +// SetEncrypted sets the Encrypted field's value. +func (s *AwsRdsDbSnapshotDetails) SetEncrypted(v bool) *AwsRdsDbSnapshotDetails { + s.Encrypted = &v + return s +} + +// SetEngine sets the Engine field's value. +func (s *AwsRdsDbSnapshotDetails) SetEngine(v string) *AwsRdsDbSnapshotDetails { + s.Engine = &v + return s +} + +// SetEngineVersion sets the EngineVersion field's value. +func (s *AwsRdsDbSnapshotDetails) SetEngineVersion(v string) *AwsRdsDbSnapshotDetails { + s.EngineVersion = &v + return s +} + +// SetIamDatabaseAuthenticationEnabled sets the IamDatabaseAuthenticationEnabled field's value. +func (s *AwsRdsDbSnapshotDetails) SetIamDatabaseAuthenticationEnabled(v bool) *AwsRdsDbSnapshotDetails { + s.IamDatabaseAuthenticationEnabled = &v + return s +} + +// SetInstanceCreateTime sets the InstanceCreateTime field's value. +func (s *AwsRdsDbSnapshotDetails) SetInstanceCreateTime(v string) *AwsRdsDbSnapshotDetails { + s.InstanceCreateTime = &v + return s +} + +// SetIops sets the Iops field's value. +func (s *AwsRdsDbSnapshotDetails) SetIops(v int64) *AwsRdsDbSnapshotDetails { + s.Iops = &v + return s +} + +// SetKmsKeyId sets the KmsKeyId field's value. +func (s *AwsRdsDbSnapshotDetails) SetKmsKeyId(v string) *AwsRdsDbSnapshotDetails { + s.KmsKeyId = &v + return s +} + +// SetLicenseModel sets the LicenseModel field's value. +func (s *AwsRdsDbSnapshotDetails) SetLicenseModel(v string) *AwsRdsDbSnapshotDetails { + s.LicenseModel = &v + return s +} + +// SetMasterUsername sets the MasterUsername field's value. +func (s *AwsRdsDbSnapshotDetails) SetMasterUsername(v string) *AwsRdsDbSnapshotDetails { + s.MasterUsername = &v + return s +} + +// SetOptionGroupName sets the OptionGroupName field's value. +func (s *AwsRdsDbSnapshotDetails) SetOptionGroupName(v string) *AwsRdsDbSnapshotDetails { + s.OptionGroupName = &v + return s +} + +// SetPercentProgress sets the PercentProgress field's value. +func (s *AwsRdsDbSnapshotDetails) SetPercentProgress(v int64) *AwsRdsDbSnapshotDetails { + s.PercentProgress = &v + return s +} + +// SetPort sets the Port field's value. +func (s *AwsRdsDbSnapshotDetails) SetPort(v int64) *AwsRdsDbSnapshotDetails { + s.Port = &v + return s +} + +// SetProcessorFeatures sets the ProcessorFeatures field's value. +func (s *AwsRdsDbSnapshotDetails) SetProcessorFeatures(v []*AwsRdsDbProcessorFeature) *AwsRdsDbSnapshotDetails { + s.ProcessorFeatures = v + return s +} + +// SetSnapshotCreateTime sets the SnapshotCreateTime field's value. +func (s *AwsRdsDbSnapshotDetails) SetSnapshotCreateTime(v string) *AwsRdsDbSnapshotDetails { + s.SnapshotCreateTime = &v + return s +} + +// SetSnapshotType sets the SnapshotType field's value. +func (s *AwsRdsDbSnapshotDetails) SetSnapshotType(v string) *AwsRdsDbSnapshotDetails { + s.SnapshotType = &v + return s +} + +// SetSourceDbSnapshotIdentifier sets the SourceDbSnapshotIdentifier field's value. +func (s *AwsRdsDbSnapshotDetails) SetSourceDbSnapshotIdentifier(v string) *AwsRdsDbSnapshotDetails { + s.SourceDbSnapshotIdentifier = &v + return s +} + +// SetSourceRegion sets the SourceRegion field's value. +func (s *AwsRdsDbSnapshotDetails) SetSourceRegion(v string) *AwsRdsDbSnapshotDetails { + s.SourceRegion = &v return s } -// SetCharacterSetName sets the CharacterSetName field's value. -func (s *AwsRdsDbInstanceDetails) SetCharacterSetName(v string) *AwsRdsDbInstanceDetails { - s.CharacterSetName = &v +// SetStatus sets the Status field's value. +func (s *AwsRdsDbSnapshotDetails) SetStatus(v string) *AwsRdsDbSnapshotDetails { + s.Status = &v return s } -// SetCopyTagsToSnapshot sets the CopyTagsToSnapshot field's value. -func (s *AwsRdsDbInstanceDetails) SetCopyTagsToSnapshot(v bool) *AwsRdsDbInstanceDetails { - s.CopyTagsToSnapshot = &v +// SetStorageType sets the StorageType field's value. +func (s *AwsRdsDbSnapshotDetails) SetStorageType(v string) *AwsRdsDbSnapshotDetails { + s.StorageType = &v return s } -// SetDBClusterIdentifier sets the DBClusterIdentifier field's value. -func (s *AwsRdsDbInstanceDetails) SetDBClusterIdentifier(v string) *AwsRdsDbInstanceDetails { - s.DBClusterIdentifier = &v +// SetTdeCredentialArn sets the TdeCredentialArn field's value. +func (s *AwsRdsDbSnapshotDetails) SetTdeCredentialArn(v string) *AwsRdsDbSnapshotDetails { + s.TdeCredentialArn = &v return s } -// SetDBInstanceClass sets the DBInstanceClass field's value. -func (s *AwsRdsDbInstanceDetails) SetDBInstanceClass(v string) *AwsRdsDbInstanceDetails { - s.DBInstanceClass = &v +// SetTimezone sets the Timezone field's value. +func (s *AwsRdsDbSnapshotDetails) SetTimezone(v string) *AwsRdsDbSnapshotDetails { + s.Timezone = &v return s } -// SetDBInstanceIdentifier sets the DBInstanceIdentifier field's value. -func (s *AwsRdsDbInstanceDetails) SetDBInstanceIdentifier(v string) *AwsRdsDbInstanceDetails { - s.DBInstanceIdentifier = &v +// SetVpcId sets the VpcId field's value. +func (s *AwsRdsDbSnapshotDetails) SetVpcId(v string) *AwsRdsDbSnapshotDetails { + s.VpcId = &v return s } -// SetDBName sets the DBName field's value. -func (s *AwsRdsDbInstanceDetails) SetDBName(v string) *AwsRdsDbInstanceDetails { - s.DBName = &v - return s +// Information about the status of a read replica. +type AwsRdsDbStatusInfo struct { + _ struct{} `type:"structure"` + + // If the read replica is currently in an error state, provides the error details. + Message *string `type:"string"` + + // Whether the read replica instance is operating normally. + Normal *bool `type:"boolean"` + + // The status of the read replica instance. + Status *string `type:"string"` + + // The type of status. For a read replica, the status type is read replication. + StatusType *string `type:"string"` } -// SetDbInstancePort sets the DbInstancePort field's value. -func (s *AwsRdsDbInstanceDetails) SetDbInstancePort(v int64) *AwsRdsDbInstanceDetails { - s.DbInstancePort = &v - return s +// String returns the string representation +func (s AwsRdsDbStatusInfo) String() string { + return awsutil.Prettify(s) } -// SetDbInstanceStatus sets the DbInstanceStatus field's value. -func (s *AwsRdsDbInstanceDetails) SetDbInstanceStatus(v string) *AwsRdsDbInstanceDetails { - s.DbInstanceStatus = &v - return s +// GoString returns the string representation +func (s AwsRdsDbStatusInfo) GoString() string { + return s.String() } -// SetDbParameterGroups sets the DbParameterGroups field's value. -func (s *AwsRdsDbInstanceDetails) SetDbParameterGroups(v []*AwsRdsDbParameterGroup) *AwsRdsDbInstanceDetails { - s.DbParameterGroups = v +// SetMessage sets the Message field's value. +func (s *AwsRdsDbStatusInfo) SetMessage(v string) *AwsRdsDbStatusInfo { + s.Message = &v return s } -// SetDbSecurityGroups sets the DbSecurityGroups field's value. -func (s *AwsRdsDbInstanceDetails) SetDbSecurityGroups(v []*string) *AwsRdsDbInstanceDetails { - s.DbSecurityGroups = v +// SetNormal sets the Normal field's value. +func (s *AwsRdsDbStatusInfo) SetNormal(v bool) *AwsRdsDbStatusInfo { + s.Normal = &v return s } -// SetDbSubnetGroup sets the DbSubnetGroup field's value. -func (s *AwsRdsDbInstanceDetails) SetDbSubnetGroup(v *AwsRdsDbSubnetGroup) *AwsRdsDbInstanceDetails { - s.DbSubnetGroup = v +// SetStatus sets the Status field's value. +func (s *AwsRdsDbStatusInfo) SetStatus(v string) *AwsRdsDbStatusInfo { + s.Status = &v return s } -// SetDbiResourceId sets the DbiResourceId field's value. -func (s *AwsRdsDbInstanceDetails) SetDbiResourceId(v string) *AwsRdsDbInstanceDetails { - s.DbiResourceId = &v +// SetStatusType sets the StatusType field's value. +func (s *AwsRdsDbStatusInfo) SetStatusType(v string) *AwsRdsDbStatusInfo { + s.StatusType = &v return s } -// SetDeletionProtection sets the DeletionProtection field's value. -func (s *AwsRdsDbInstanceDetails) SetDeletionProtection(v bool) *AwsRdsDbInstanceDetails { - s.DeletionProtection = &v - return s +// Information about the subnet group for the database instance. +type AwsRdsDbSubnetGroup struct { + _ struct{} `type:"structure"` + + // The ARN of the subnet group. + DbSubnetGroupArn *string `type:"string"` + + // The description of the subnet group. + DbSubnetGroupDescription *string `type:"string"` + + // The name of the subnet group. + DbSubnetGroupName *string `type:"string"` + + // The status of the subnet group. + SubnetGroupStatus *string `type:"string"` + + // A list of subnets in the subnet group. + Subnets []*AwsRdsDbSubnetGroupSubnet `type:"list"` + + // The VPC ID of the subnet group. + VpcId *string `type:"string"` } -// SetDomainMemberships sets the DomainMemberships field's value. -func (s *AwsRdsDbInstanceDetails) SetDomainMemberships(v []*AwsRdsDbDomainMembership) *AwsRdsDbInstanceDetails { - s.DomainMemberships = v - return s +// String returns the string representation +func (s AwsRdsDbSubnetGroup) String() string { + return awsutil.Prettify(s) } -// SetEnabledCloudWatchLogsExports sets the EnabledCloudWatchLogsExports field's value. -func (s *AwsRdsDbInstanceDetails) SetEnabledCloudWatchLogsExports(v []*string) *AwsRdsDbInstanceDetails { - s.EnabledCloudWatchLogsExports = v - return s +// GoString returns the string representation +func (s AwsRdsDbSubnetGroup) GoString() string { + return s.String() } -// SetEndpoint sets the Endpoint field's value. -func (s *AwsRdsDbInstanceDetails) SetEndpoint(v *AwsRdsDbInstanceEndpoint) *AwsRdsDbInstanceDetails { - s.Endpoint = v +// SetDbSubnetGroupArn sets the DbSubnetGroupArn field's value. +func (s *AwsRdsDbSubnetGroup) SetDbSubnetGroupArn(v string) *AwsRdsDbSubnetGroup { + s.DbSubnetGroupArn = &v return s } -// SetEngine sets the Engine field's value. -func (s *AwsRdsDbInstanceDetails) SetEngine(v string) *AwsRdsDbInstanceDetails { - s.Engine = &v +// SetDbSubnetGroupDescription sets the DbSubnetGroupDescription field's value. +func (s *AwsRdsDbSubnetGroup) SetDbSubnetGroupDescription(v string) *AwsRdsDbSubnetGroup { + s.DbSubnetGroupDescription = &v return s } -// SetEngineVersion sets the EngineVersion field's value. -func (s *AwsRdsDbInstanceDetails) SetEngineVersion(v string) *AwsRdsDbInstanceDetails { - s.EngineVersion = &v +// SetDbSubnetGroupName sets the DbSubnetGroupName field's value. +func (s *AwsRdsDbSubnetGroup) SetDbSubnetGroupName(v string) *AwsRdsDbSubnetGroup { + s.DbSubnetGroupName = &v return s } -// SetEnhancedMonitoringResourceArn sets the EnhancedMonitoringResourceArn field's value. -func (s *AwsRdsDbInstanceDetails) SetEnhancedMonitoringResourceArn(v string) *AwsRdsDbInstanceDetails { - s.EnhancedMonitoringResourceArn = &v +// SetSubnetGroupStatus sets the SubnetGroupStatus field's value. +func (s *AwsRdsDbSubnetGroup) SetSubnetGroupStatus(v string) *AwsRdsDbSubnetGroup { + s.SubnetGroupStatus = &v return s } -// SetIAMDatabaseAuthenticationEnabled sets the IAMDatabaseAuthenticationEnabled field's value. -func (s *AwsRdsDbInstanceDetails) SetIAMDatabaseAuthenticationEnabled(v bool) *AwsRdsDbInstanceDetails { - s.IAMDatabaseAuthenticationEnabled = &v +// SetSubnets sets the Subnets field's value. +func (s *AwsRdsDbSubnetGroup) SetSubnets(v []*AwsRdsDbSubnetGroupSubnet) *AwsRdsDbSubnetGroup { + s.Subnets = v return s } -// SetInstanceCreateTime sets the InstanceCreateTime field's value. -func (s *AwsRdsDbInstanceDetails) SetInstanceCreateTime(v string) *AwsRdsDbInstanceDetails { - s.InstanceCreateTime = &v +// SetVpcId sets the VpcId field's value. +func (s *AwsRdsDbSubnetGroup) SetVpcId(v string) *AwsRdsDbSubnetGroup { + s.VpcId = &v return s } -// SetIops sets the Iops field's value. -func (s *AwsRdsDbInstanceDetails) SetIops(v int64) *AwsRdsDbInstanceDetails { - s.Iops = &v - return s +// Information about a subnet in a subnet group. +type AwsRdsDbSubnetGroupSubnet struct { + _ struct{} `type:"structure"` + + // Information about the Availability Zone for a subnet in the subnet group. + SubnetAvailabilityZone *AwsRdsDbSubnetGroupSubnetAvailabilityZone `type:"structure"` + + // The identifier of a subnet in the subnet group. + SubnetIdentifier *string `type:"string"` + + // The status of a subnet in the subnet group. + SubnetStatus *string `type:"string"` } -// SetKmsKeyId sets the KmsKeyId field's value. -func (s *AwsRdsDbInstanceDetails) SetKmsKeyId(v string) *AwsRdsDbInstanceDetails { - s.KmsKeyId = &v - return s +// String returns the string representation +func (s AwsRdsDbSubnetGroupSubnet) String() string { + return awsutil.Prettify(s) } -// SetLatestRestorableTime sets the LatestRestorableTime field's value. -func (s *AwsRdsDbInstanceDetails) SetLatestRestorableTime(v string) *AwsRdsDbInstanceDetails { - s.LatestRestorableTime = &v - return s +// GoString returns the string representation +func (s AwsRdsDbSubnetGroupSubnet) GoString() string { + return s.String() } -// SetLicenseModel sets the LicenseModel field's value. -func (s *AwsRdsDbInstanceDetails) SetLicenseModel(v string) *AwsRdsDbInstanceDetails { - s.LicenseModel = &v +// SetSubnetAvailabilityZone sets the SubnetAvailabilityZone field's value. +func (s *AwsRdsDbSubnetGroupSubnet) SetSubnetAvailabilityZone(v *AwsRdsDbSubnetGroupSubnetAvailabilityZone) *AwsRdsDbSubnetGroupSubnet { + s.SubnetAvailabilityZone = v return s } -// SetListenerEndpoint sets the ListenerEndpoint field's value. -func (s *AwsRdsDbInstanceDetails) SetListenerEndpoint(v *AwsRdsDbInstanceEndpoint) *AwsRdsDbInstanceDetails { - s.ListenerEndpoint = v +// SetSubnetIdentifier sets the SubnetIdentifier field's value. +func (s *AwsRdsDbSubnetGroupSubnet) SetSubnetIdentifier(v string) *AwsRdsDbSubnetGroupSubnet { + s.SubnetIdentifier = &v return s } -// SetMasterUsername sets the MasterUsername field's value. -func (s *AwsRdsDbInstanceDetails) SetMasterUsername(v string) *AwsRdsDbInstanceDetails { - s.MasterUsername = &v +// SetSubnetStatus sets the SubnetStatus field's value. +func (s *AwsRdsDbSubnetGroupSubnet) SetSubnetStatus(v string) *AwsRdsDbSubnetGroupSubnet { + s.SubnetStatus = &v return s } -// SetMaxAllocatedStorage sets the MaxAllocatedStorage field's value. -func (s *AwsRdsDbInstanceDetails) SetMaxAllocatedStorage(v int64) *AwsRdsDbInstanceDetails { - s.MaxAllocatedStorage = &v - return s +// An Availability Zone for a subnet in a subnet group. +type AwsRdsDbSubnetGroupSubnetAvailabilityZone struct { + _ struct{} `type:"structure"` + + // The name of the Availability Zone for a subnet in the subnet group. + Name *string `type:"string"` } -// SetMonitoringInterval sets the MonitoringInterval field's value. -func (s *AwsRdsDbInstanceDetails) SetMonitoringInterval(v int64) *AwsRdsDbInstanceDetails { - s.MonitoringInterval = &v - return s +// String returns the string representation +func (s AwsRdsDbSubnetGroupSubnetAvailabilityZone) String() string { + return awsutil.Prettify(s) } -// SetMonitoringRoleArn sets the MonitoringRoleArn field's value. -func (s *AwsRdsDbInstanceDetails) SetMonitoringRoleArn(v string) *AwsRdsDbInstanceDetails { - s.MonitoringRoleArn = &v - return s +// GoString returns the string representation +func (s AwsRdsDbSubnetGroupSubnetAvailabilityZone) GoString() string { + return s.String() } -// SetMultiAz sets the MultiAz field's value. -func (s *AwsRdsDbInstanceDetails) SetMultiAz(v bool) *AwsRdsDbInstanceDetails { - s.MultiAz = &v +// SetName sets the Name field's value. +func (s *AwsRdsDbSubnetGroupSubnetAvailabilityZone) SetName(v string) *AwsRdsDbSubnetGroupSubnetAvailabilityZone { + s.Name = &v return s } -// SetOptionGroupMemberships sets the OptionGroupMemberships field's value. -func (s *AwsRdsDbInstanceDetails) SetOptionGroupMemberships(v []*AwsRdsDbOptionGroupMembership) *AwsRdsDbInstanceDetails { - s.OptionGroupMemberships = v - return s +// Identifies the log types to enable and disable. +type AwsRdsPendingCloudWatchLogsExports struct { + _ struct{} `type:"structure"` + + // A list of log types that are being disabled. + LogTypesToDisable []*string `type:"list"` + + // A list of log types that are being enabled. + LogTypesToEnable []*string `type:"list"` } -// SetPendingModifiedValues sets the PendingModifiedValues field's value. -func (s *AwsRdsDbInstanceDetails) SetPendingModifiedValues(v *AwsRdsDbPendingModifiedValues) *AwsRdsDbInstanceDetails { - s.PendingModifiedValues = v - return s +// String returns the string representation +func (s AwsRdsPendingCloudWatchLogsExports) String() string { + return awsutil.Prettify(s) } -// SetPerformanceInsightsEnabled sets the PerformanceInsightsEnabled field's value. -func (s *AwsRdsDbInstanceDetails) SetPerformanceInsightsEnabled(v bool) *AwsRdsDbInstanceDetails { - s.PerformanceInsightsEnabled = &v - return s +// GoString returns the string representation +func (s AwsRdsPendingCloudWatchLogsExports) GoString() string { + return s.String() } -// SetPerformanceInsightsKmsKeyId sets the PerformanceInsightsKmsKeyId field's value. -func (s *AwsRdsDbInstanceDetails) SetPerformanceInsightsKmsKeyId(v string) *AwsRdsDbInstanceDetails { - s.PerformanceInsightsKmsKeyId = &v +// SetLogTypesToDisable sets the LogTypesToDisable field's value. +func (s *AwsRdsPendingCloudWatchLogsExports) SetLogTypesToDisable(v []*string) *AwsRdsPendingCloudWatchLogsExports { + s.LogTypesToDisable = v return s } -// SetPerformanceInsightsRetentionPeriod sets the PerformanceInsightsRetentionPeriod field's value. -func (s *AwsRdsDbInstanceDetails) SetPerformanceInsightsRetentionPeriod(v int64) *AwsRdsDbInstanceDetails { - s.PerformanceInsightsRetentionPeriod = &v +// SetLogTypesToEnable sets the LogTypesToEnable field's value. +func (s *AwsRdsPendingCloudWatchLogsExports) SetLogTypesToEnable(v []*string) *AwsRdsPendingCloudWatchLogsExports { + s.LogTypesToEnable = v return s } -// SetPreferredBackupWindow sets the PreferredBackupWindow field's value. -func (s *AwsRdsDbInstanceDetails) SetPreferredBackupWindow(v string) *AwsRdsDbInstanceDetails { - s.PreferredBackupWindow = &v - return s -} +// A node in an Amazon Redshift cluster. +type AwsRedshiftClusterClusterNode struct { + _ struct{} `type:"structure"` -// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value. -func (s *AwsRdsDbInstanceDetails) SetPreferredMaintenanceWindow(v string) *AwsRdsDbInstanceDetails { - s.PreferredMaintenanceWindow = &v - return s -} + // The role of the node. A node might be a leader node or a compute node. + NodeRole *string `type:"string"` -// SetProcessorFeatures sets the ProcessorFeatures field's value. -func (s *AwsRdsDbInstanceDetails) SetProcessorFeatures(v []*AwsRdsDbProcessorFeature) *AwsRdsDbInstanceDetails { - s.ProcessorFeatures = v - return s -} + // The private IP address of the node. + PrivateIpAddress *string `type:"string"` -// SetPromotionTier sets the PromotionTier field's value. -func (s *AwsRdsDbInstanceDetails) SetPromotionTier(v int64) *AwsRdsDbInstanceDetails { - s.PromotionTier = &v - return s + // The public IP address of the node. + PublicIpAddress *string `type:"string"` } -// SetPubliclyAccessible sets the PubliclyAccessible field's value. -func (s *AwsRdsDbInstanceDetails) SetPubliclyAccessible(v bool) *AwsRdsDbInstanceDetails { - s.PubliclyAccessible = &v - return s +// String returns the string representation +func (s AwsRedshiftClusterClusterNode) String() string { + return awsutil.Prettify(s) } -// SetReadReplicaDBClusterIdentifiers sets the ReadReplicaDBClusterIdentifiers field's value. -func (s *AwsRdsDbInstanceDetails) SetReadReplicaDBClusterIdentifiers(v []*string) *AwsRdsDbInstanceDetails { - s.ReadReplicaDBClusterIdentifiers = v - return s +// GoString returns the string representation +func (s AwsRedshiftClusterClusterNode) GoString() string { + return s.String() } -// SetReadReplicaDBInstanceIdentifiers sets the ReadReplicaDBInstanceIdentifiers field's value. -func (s *AwsRdsDbInstanceDetails) SetReadReplicaDBInstanceIdentifiers(v []*string) *AwsRdsDbInstanceDetails { - s.ReadReplicaDBInstanceIdentifiers = v +// SetNodeRole sets the NodeRole field's value. +func (s *AwsRedshiftClusterClusterNode) SetNodeRole(v string) *AwsRedshiftClusterClusterNode { + s.NodeRole = &v return s } -// SetReadReplicaSourceDBInstanceIdentifier sets the ReadReplicaSourceDBInstanceIdentifier field's value. -func (s *AwsRdsDbInstanceDetails) SetReadReplicaSourceDBInstanceIdentifier(v string) *AwsRdsDbInstanceDetails { - s.ReadReplicaSourceDBInstanceIdentifier = &v +// SetPrivateIpAddress sets the PrivateIpAddress field's value. +func (s *AwsRedshiftClusterClusterNode) SetPrivateIpAddress(v string) *AwsRedshiftClusterClusterNode { + s.PrivateIpAddress = &v return s } -// SetSecondaryAvailabilityZone sets the SecondaryAvailabilityZone field's value. -func (s *AwsRdsDbInstanceDetails) SetSecondaryAvailabilityZone(v string) *AwsRdsDbInstanceDetails { - s.SecondaryAvailabilityZone = &v +// SetPublicIpAddress sets the PublicIpAddress field's value. +func (s *AwsRedshiftClusterClusterNode) SetPublicIpAddress(v string) *AwsRedshiftClusterClusterNode { + s.PublicIpAddress = &v return s } -// SetStatusInfos sets the StatusInfos field's value. -func (s *AwsRdsDbInstanceDetails) SetStatusInfos(v []*AwsRdsDbStatusInfo) *AwsRdsDbInstanceDetails { - s.StatusInfos = v - return s +// A cluster parameter group that is associated with an Amazon Redshift cluster. +type AwsRedshiftClusterClusterParameterGroup struct { + _ struct{} `type:"structure"` + + // The list of parameter statuses. + ClusterParameterStatusList []*AwsRedshiftClusterClusterParameterStatus `type:"list"` + + // The status of updates to the parameters. + ParameterApplyStatus *string `type:"string"` + + // The name of the parameter group. + ParameterGroupName *string `type:"string"` } -// SetStorageEncrypted sets the StorageEncrypted field's value. -func (s *AwsRdsDbInstanceDetails) SetStorageEncrypted(v bool) *AwsRdsDbInstanceDetails { - s.StorageEncrypted = &v - return s +// String returns the string representation +func (s AwsRedshiftClusterClusterParameterGroup) String() string { + return awsutil.Prettify(s) } -// SetStorageType sets the StorageType field's value. -func (s *AwsRdsDbInstanceDetails) SetStorageType(v string) *AwsRdsDbInstanceDetails { - s.StorageType = &v - return s +// GoString returns the string representation +func (s AwsRedshiftClusterClusterParameterGroup) GoString() string { + return s.String() } -// SetTdeCredentialArn sets the TdeCredentialArn field's value. -func (s *AwsRdsDbInstanceDetails) SetTdeCredentialArn(v string) *AwsRdsDbInstanceDetails { - s.TdeCredentialArn = &v +// SetClusterParameterStatusList sets the ClusterParameterStatusList field's value. +func (s *AwsRedshiftClusterClusterParameterGroup) SetClusterParameterStatusList(v []*AwsRedshiftClusterClusterParameterStatus) *AwsRedshiftClusterClusterParameterGroup { + s.ClusterParameterStatusList = v return s } -// SetTimezone sets the Timezone field's value. -func (s *AwsRdsDbInstanceDetails) SetTimezone(v string) *AwsRdsDbInstanceDetails { - s.Timezone = &v +// SetParameterApplyStatus sets the ParameterApplyStatus field's value. +func (s *AwsRedshiftClusterClusterParameterGroup) SetParameterApplyStatus(v string) *AwsRedshiftClusterClusterParameterGroup { + s.ParameterApplyStatus = &v return s } -// SetVpcSecurityGroups sets the VpcSecurityGroups field's value. -func (s *AwsRdsDbInstanceDetails) SetVpcSecurityGroups(v []*AwsRdsDbInstanceVpcSecurityGroup) *AwsRdsDbInstanceDetails { - s.VpcSecurityGroups = v +// SetParameterGroupName sets the ParameterGroupName field's value. +func (s *AwsRedshiftClusterClusterParameterGroup) SetParameterGroupName(v string) *AwsRedshiftClusterClusterParameterGroup { + s.ParameterGroupName = &v return s } -// Specifies the connection endpoint. -type AwsRdsDbInstanceEndpoint struct { +// The status of a parameter in a cluster parameter group for an Amazon Redshift +// cluster. +type AwsRedshiftClusterClusterParameterStatus struct { _ struct{} `type:"structure"` - // Specifies the DNS address of the DB instance. - Address *string `type:"string"` + // The error that prevented the parameter from being applied to the database. + ParameterApplyErrorDescription *string `type:"string"` - // Specifies the ID that Amazon Route 53 assigns when you create a hosted zone. - HostedZoneId *string `type:"string"` + // The status of the parameter. Indicates whether the parameter is in sync with + // the database, waiting for a cluster reboot, or encountered an error when + // it was applied. + // + // Valid values: in-sync | pending-reboot | applying | invalid-parameter | apply-deferred + // | apply-error | unknown-error + ParameterApplyStatus *string `type:"string"` - // Specifies the port that the database engine is listening on. - Port *int64 `type:"integer"` + // The name of the parameter. + ParameterName *string `type:"string"` } // String returns the string representation -func (s AwsRdsDbInstanceEndpoint) String() string { +func (s AwsRedshiftClusterClusterParameterStatus) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsRdsDbInstanceEndpoint) GoString() string { +func (s AwsRedshiftClusterClusterParameterStatus) GoString() string { return s.String() } -// SetAddress sets the Address field's value. -func (s *AwsRdsDbInstanceEndpoint) SetAddress(v string) *AwsRdsDbInstanceEndpoint { - s.Address = &v +// SetParameterApplyErrorDescription sets the ParameterApplyErrorDescription field's value. +func (s *AwsRedshiftClusterClusterParameterStatus) SetParameterApplyErrorDescription(v string) *AwsRedshiftClusterClusterParameterStatus { + s.ParameterApplyErrorDescription = &v return s } -// SetHostedZoneId sets the HostedZoneId field's value. -func (s *AwsRdsDbInstanceEndpoint) SetHostedZoneId(v string) *AwsRdsDbInstanceEndpoint { - s.HostedZoneId = &v +// SetParameterApplyStatus sets the ParameterApplyStatus field's value. +func (s *AwsRedshiftClusterClusterParameterStatus) SetParameterApplyStatus(v string) *AwsRedshiftClusterClusterParameterStatus { + s.ParameterApplyStatus = &v return s } -// SetPort sets the Port field's value. -func (s *AwsRdsDbInstanceEndpoint) SetPort(v int64) *AwsRdsDbInstanceEndpoint { - s.Port = &v +// SetParameterName sets the ParameterName field's value. +func (s *AwsRedshiftClusterClusterParameterStatus) SetParameterName(v string) *AwsRedshiftClusterClusterParameterStatus { + s.ParameterName = &v return s } -// A VPC security groups that the DB instance belongs to. -type AwsRdsDbInstanceVpcSecurityGroup struct { +// A security group that is associated with the cluster. +type AwsRedshiftClusterClusterSecurityGroup struct { _ struct{} `type:"structure"` - // The status of the VPC security group. - Status *string `type:"string"` + // The name of the cluster security group. + ClusterSecurityGroupName *string `type:"string"` - // The name of the VPC security group. - VpcSecurityGroupId *string `type:"string"` + // The status of the cluster security group. + Status *string `type:"string"` } // String returns the string representation -func (s AwsRdsDbInstanceVpcSecurityGroup) String() string { +func (s AwsRedshiftClusterClusterSecurityGroup) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsRdsDbInstanceVpcSecurityGroup) GoString() string { +func (s AwsRedshiftClusterClusterSecurityGroup) GoString() string { return s.String() } -// SetStatus sets the Status field's value. -func (s *AwsRdsDbInstanceVpcSecurityGroup) SetStatus(v string) *AwsRdsDbInstanceVpcSecurityGroup { - s.Status = &v +// SetClusterSecurityGroupName sets the ClusterSecurityGroupName field's value. +func (s *AwsRedshiftClusterClusterSecurityGroup) SetClusterSecurityGroupName(v string) *AwsRedshiftClusterClusterSecurityGroup { + s.ClusterSecurityGroupName = &v return s } -// SetVpcSecurityGroupId sets the VpcSecurityGroupId field's value. -func (s *AwsRdsDbInstanceVpcSecurityGroup) SetVpcSecurityGroupId(v string) *AwsRdsDbInstanceVpcSecurityGroup { - s.VpcSecurityGroupId = &v +// SetStatus sets the Status field's value. +func (s *AwsRedshiftClusterClusterSecurityGroup) SetStatus(v string) *AwsRedshiftClusterClusterSecurityGroup { + s.Status = &v return s } -type AwsRdsDbOptionGroupMembership struct { +// Information about a cross-Region snapshot copy. +type AwsRedshiftClusterClusterSnapshotCopyStatus struct { _ struct{} `type:"structure"` - OptionGroupName *string `type:"string"` + // The destination Region that snapshots are automatically copied to when cross-Region + // snapshot copy is enabled. + DestinationRegion *string `type:"string"` - Status *string `type:"string"` + // The number of days that manual snapshots are retained in the destination + // region after they are copied from a source region. + // + // If the value is -1, then the manual snapshot is retained indefinitely. + // + // Valid values: Either -1 or an integer between 1 and 3,653 + ManualSnapshotRetentionPeriod *int64 `type:"integer"` + + // The number of days to retain automated snapshots in the destination Region + // after they are copied from a source Region. + RetentionPeriod *int64 `type:"integer"` + + // The name of the snapshot copy grant. + SnapshotCopyGrantName *string `type:"string"` } // String returns the string representation -func (s AwsRdsDbOptionGroupMembership) String() string { +func (s AwsRedshiftClusterClusterSnapshotCopyStatus) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsRdsDbOptionGroupMembership) GoString() string { +func (s AwsRedshiftClusterClusterSnapshotCopyStatus) GoString() string { return s.String() } -// SetOptionGroupName sets the OptionGroupName field's value. -func (s *AwsRdsDbOptionGroupMembership) SetOptionGroupName(v string) *AwsRdsDbOptionGroupMembership { - s.OptionGroupName = &v +// SetDestinationRegion sets the DestinationRegion field's value. +func (s *AwsRedshiftClusterClusterSnapshotCopyStatus) SetDestinationRegion(v string) *AwsRedshiftClusterClusterSnapshotCopyStatus { + s.DestinationRegion = &v return s } -// SetStatus sets the Status field's value. -func (s *AwsRdsDbOptionGroupMembership) SetStatus(v string) *AwsRdsDbOptionGroupMembership { - s.Status = &v +// SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value. +func (s *AwsRedshiftClusterClusterSnapshotCopyStatus) SetManualSnapshotRetentionPeriod(v int64) *AwsRedshiftClusterClusterSnapshotCopyStatus { + s.ManualSnapshotRetentionPeriod = &v return s } -type AwsRdsDbParameterGroup struct { +// SetRetentionPeriod sets the RetentionPeriod field's value. +func (s *AwsRedshiftClusterClusterSnapshotCopyStatus) SetRetentionPeriod(v int64) *AwsRedshiftClusterClusterSnapshotCopyStatus { + s.RetentionPeriod = &v + return s +} + +// SetSnapshotCopyGrantName sets the SnapshotCopyGrantName field's value. +func (s *AwsRedshiftClusterClusterSnapshotCopyStatus) SetSnapshotCopyGrantName(v string) *AwsRedshiftClusterClusterSnapshotCopyStatus { + s.SnapshotCopyGrantName = &v + return s +} + +// A time windows during which maintenance was deferred for an Amazon Redshift +// cluster. +type AwsRedshiftClusterDeferredMaintenanceWindow struct { _ struct{} `type:"structure"` - DbParameterGroupName *string `type:"string"` + // The end of the time window for which maintenance was deferred. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + DeferMaintenanceEndTime *string `type:"string"` - ParameterApplyStatus *string `type:"string"` + // The identifier of the maintenance window. + DeferMaintenanceIdentifier *string `type:"string"` + + // The start of the time window for which maintenance was deferred. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + DeferMaintenanceStartTime *string `type:"string"` } // String returns the string representation -func (s AwsRdsDbParameterGroup) String() string { +func (s AwsRedshiftClusterDeferredMaintenanceWindow) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsRdsDbParameterGroup) GoString() string { +func (s AwsRedshiftClusterDeferredMaintenanceWindow) GoString() string { return s.String() } -// SetDbParameterGroupName sets the DbParameterGroupName field's value. -func (s *AwsRdsDbParameterGroup) SetDbParameterGroupName(v string) *AwsRdsDbParameterGroup { - s.DbParameterGroupName = &v +// SetDeferMaintenanceEndTime sets the DeferMaintenanceEndTime field's value. +func (s *AwsRedshiftClusterDeferredMaintenanceWindow) SetDeferMaintenanceEndTime(v string) *AwsRedshiftClusterDeferredMaintenanceWindow { + s.DeferMaintenanceEndTime = &v return s } -// SetParameterApplyStatus sets the ParameterApplyStatus field's value. -func (s *AwsRdsDbParameterGroup) SetParameterApplyStatus(v string) *AwsRdsDbParameterGroup { - s.ParameterApplyStatus = &v +// SetDeferMaintenanceIdentifier sets the DeferMaintenanceIdentifier field's value. +func (s *AwsRedshiftClusterDeferredMaintenanceWindow) SetDeferMaintenanceIdentifier(v string) *AwsRedshiftClusterDeferredMaintenanceWindow { + s.DeferMaintenanceIdentifier = &v return s } -type AwsRdsDbPendingModifiedValues struct { +// SetDeferMaintenanceStartTime sets the DeferMaintenanceStartTime field's value. +func (s *AwsRedshiftClusterDeferredMaintenanceWindow) SetDeferMaintenanceStartTime(v string) *AwsRedshiftClusterDeferredMaintenanceWindow { + s.DeferMaintenanceStartTime = &v + return s +} + +// Details about an Amazon Redshift cluster. +type AwsRedshiftClusterDetails struct { _ struct{} `type:"structure"` - AllocatedStorage *int64 `type:"integer"` + // Indicates whether major version upgrades are applied automatically to the + // cluster during the maintenance window. + AllowVersionUpgrade *bool `type:"boolean"` - BackupRetentionPeriod *int64 `type:"integer"` + // The number of days that automatic cluster snapshots are retained. + AutomatedSnapshotRetentionPeriod *int64 `type:"integer"` - CaCertificateIdentifier *string `type:"string"` + // The name of the Availability Zone in which the cluster is located. + AvailabilityZone *string `type:"string"` - DbInstanceClass *string `type:"string"` + // The availability status of the cluster for queries. Possible values are the + // following: + // + // * Available - The cluster is available for queries. + // + // * Unavailable - The cluster is not available for queries. + // + // * Maintenance - The cluster is intermittently available for queries due + // to maintenance activities. + // + // * Modifying -The cluster is intermittently available for queries due to + // changes that modify the cluster. + // + // * Failed - The cluster failed and is not available for queries. + ClusterAvailabilityStatus *string `type:"string"` - DbInstanceIdentifier *string `type:"string"` + // Indicates when the cluster was created. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + ClusterCreateTime *string `type:"string"` - DbSubnetGroupName *string `type:"string"` + // The unique identifier of the cluster. + ClusterIdentifier *string `type:"string"` - EngineVersion *string `type:"string"` + // The nodes in the cluster. + ClusterNodes []*AwsRedshiftClusterClusterNode `type:"list"` - Iops *int64 `type:"integer"` + // The list of cluster parameter groups that are associated with this cluster. + ClusterParameterGroups []*AwsRedshiftClusterClusterParameterGroup `type:"list"` + + // The public key for the cluster. + ClusterPublicKey *string `type:"string"` + + // The specific revision number of the database in the cluster. + ClusterRevisionNumber *string `type:"string"` + + // A list of cluster security groups that are associated with the cluster. + ClusterSecurityGroups []*AwsRedshiftClusterClusterSecurityGroup `type:"list"` + + // Information about the destination Region and retention period for the cross-Region + // snapshot copy. + ClusterSnapshotCopyStatus *AwsRedshiftClusterClusterSnapshotCopyStatus `type:"structure"` + + // The current status of the cluster. + // + // Valid values: available | available, prep-for-resize | available, resize-cleanup + // |cancelling-resize | creating | deleting | final-snapshot | hardware-failure + // | incompatible-hsm |incompatible-network | incompatible-parameters | incompatible-restore + // | modifying | paused | rebooting | renaming | resizing | rotating-keys | + // storage-full | updating-hsm + ClusterStatus *string `type:"string"` + + // The name of the subnet group that is associated with the cluster. This parameter + // is valid only when the cluster is in a VPC. + ClusterSubnetGroupName *string `type:"string"` + + // The version ID of the Amazon Redshift engine that runs on the cluster. + ClusterVersion *string `type:"string"` + + // The name of the initial database that was created when the cluster was created. + // + // The same name is returned for the life of the cluster. + // + // If an initial database is not specified, a database named devdev is created + // by default. + DBName *string `type:"string"` + + // List of time windows during which maintenance was deferred. + DeferredMaintenanceWindows []*AwsRedshiftClusterDeferredMaintenanceWindow `type:"list"` + + // Information about the status of the Elastic IP (EIP) address. + ElasticIpStatus *AwsRedshiftClusterElasticIpStatus `type:"structure"` + + // The number of nodes that you can use the elastic resize method to resize + // the cluster to. + ElasticResizeNumberOfNodeOptions *string `type:"string"` + + // Indicates whether the data in the cluster is encrypted at rest. + Encrypted *bool `type:"boolean"` + + // The connection endpoint. + Endpoint *AwsRedshiftClusterEndpoint `type:"structure"` + + // Indicates whether to create the cluster with enhanced VPC routing enabled. + EnhancedVpcRouting *bool `type:"boolean"` + + // Indicates when the next snapshot is expected to be taken. The cluster must + // have a valid snapshot schedule and have backups enabled. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + ExpectedNextSnapshotScheduleTime *string `type:"string"` + + // The status of the next expected snapshot. + // + // Valid values: OnTrack | Pending + ExpectedNextSnapshotScheduleTimeStatus *string `type:"string"` + + // Information about whether the Amazon Redshift cluster finished applying any + // changes to hardware security module (HSM) settings that were specified in + // a modify cluster command. + HsmStatus *AwsRedshiftClusterHsmStatus `type:"structure"` + + // A list of IAM roles that the cluster can use to access other AWS services. + IamRoles []*AwsRedshiftClusterIamRole `type:"list"` + + // The identifier of the AWS KMS encryption key that is used to encrypt data + // in the cluster. + KmsKeyId *string `type:"string"` + + // The name of the maintenance track for the cluster. + MaintenanceTrackName *string `type:"string"` + + // The default number of days to retain a manual snapshot. + // + // If the value is -1, the snapshot is retained indefinitely. + // + // This setting doesn't change the retention period of existing snapshots. + // + // Valid values: Either -1 or an integer between 1 and 3,653 + ManualSnapshotRetentionPeriod *int64 `type:"integer"` + + // The master user name for the cluster. This name is used to connect to the + // database that is specified in as the value of DBName. + MasterUsername *string `type:"string"` + + // Indicates the start of the next maintenance window. + // + // Uses the date-time format specified in RFC 3339 section 5.6, Internet Date/Time + // Format (https://tools.ietf.org/html/rfc3339#section-5.6). The value cannot + // contain spaces. For example, 2020-03-22T13:22:13.933Z. + NextMaintenanceWindowStartTime *string `type:"string"` + + // The node type for the nodes in the cluster. + NodeType *string `type:"string"` + + // The number of compute nodes in the cluster. + NumberOfNodes *int64 `type:"integer"` + + // A list of cluster operations that are waiting to start. + PendingActions []*string `type:"list"` + + // A list of changes to the cluster that are currently pending. + PendingModifiedValues *AwsRedshiftClusterPendingModifiedValues `type:"structure"` + + // The weekly time range, in Universal Coordinated Time (UTC), during which + // system maintenance can occur. + // + // Format: :HH:MM-:HH:MM + // + // For the day values, use mon | tue | wed | thu | fri | sat | sun + // + // For example, sun:09:32-sun:10:02 + PreferredMaintenanceWindow *string `type:"string"` - LicenseModel *string `type:"string"` + // Whether the cluster can be accessed from a public network. + PubliclyAccessible *bool `type:"boolean"` - MasterUserPassword *string `type:"string"` + // Information about the resize operation for the cluster. + ResizeInfo *AwsRedshiftClusterResizeInfo `type:"structure"` - MultiAZ *bool `type:"boolean"` + // Information about the status of a cluster restore action. Only applies to + // a cluster that was created by restoring a snapshot. + RestoreStatus *AwsRedshiftClusterRestoreStatus `type:"structure"` - // Identifies the log types to enable and disable. - PendingCloudWatchLogsExports *AwsRdsPendingCloudWatchLogsExports `type:"structure"` + // A unique identifier for the cluster snapshot schedule. + SnapshotScheduleIdentifier *string `type:"string"` - Port *int64 `type:"integer"` + // The current state of the cluster snapshot schedule. + // + // Valid values: MODIFYING | ACTIVE | FAILED + SnapshotScheduleState *string `type:"string"` - ProcessorFeatures []*AwsRdsDbProcessorFeature `type:"list"` + // The identifier of the VPC that the cluster is in, if the cluster is in a + // VPC. + VpcId *string `type:"string"` - StorageType *string `type:"string"` + // The list of VPC security groups that the cluster belongs to, if the cluster + // is in a VPC. + VpcSecurityGroups []*AwsRedshiftClusterVpcSecurityGroup `type:"list"` } // String returns the string representation -func (s AwsRdsDbPendingModifiedValues) String() string { +func (s AwsRedshiftClusterDetails) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsRdsDbPendingModifiedValues) GoString() string { +func (s AwsRedshiftClusterDetails) GoString() string { return s.String() } -// SetAllocatedStorage sets the AllocatedStorage field's value. -func (s *AwsRdsDbPendingModifiedValues) SetAllocatedStorage(v int64) *AwsRdsDbPendingModifiedValues { - s.AllocatedStorage = &v +// SetAllowVersionUpgrade sets the AllowVersionUpgrade field's value. +func (s *AwsRedshiftClusterDetails) SetAllowVersionUpgrade(v bool) *AwsRedshiftClusterDetails { + s.AllowVersionUpgrade = &v return s } -// SetBackupRetentionPeriod sets the BackupRetentionPeriod field's value. -func (s *AwsRdsDbPendingModifiedValues) SetBackupRetentionPeriod(v int64) *AwsRdsDbPendingModifiedValues { - s.BackupRetentionPeriod = &v +// SetAutomatedSnapshotRetentionPeriod sets the AutomatedSnapshotRetentionPeriod field's value. +func (s *AwsRedshiftClusterDetails) SetAutomatedSnapshotRetentionPeriod(v int64) *AwsRedshiftClusterDetails { + s.AutomatedSnapshotRetentionPeriod = &v return s } -// SetCaCertificateIdentifier sets the CaCertificateIdentifier field's value. -func (s *AwsRdsDbPendingModifiedValues) SetCaCertificateIdentifier(v string) *AwsRdsDbPendingModifiedValues { - s.CaCertificateIdentifier = &v +// SetAvailabilityZone sets the AvailabilityZone field's value. +func (s *AwsRedshiftClusterDetails) SetAvailabilityZone(v string) *AwsRedshiftClusterDetails { + s.AvailabilityZone = &v return s } -// SetDbInstanceClass sets the DbInstanceClass field's value. -func (s *AwsRdsDbPendingModifiedValues) SetDbInstanceClass(v string) *AwsRdsDbPendingModifiedValues { - s.DbInstanceClass = &v +// SetClusterAvailabilityStatus sets the ClusterAvailabilityStatus field's value. +func (s *AwsRedshiftClusterDetails) SetClusterAvailabilityStatus(v string) *AwsRedshiftClusterDetails { + s.ClusterAvailabilityStatus = &v return s } -// SetDbInstanceIdentifier sets the DbInstanceIdentifier field's value. -func (s *AwsRdsDbPendingModifiedValues) SetDbInstanceIdentifier(v string) *AwsRdsDbPendingModifiedValues { - s.DbInstanceIdentifier = &v +// SetClusterCreateTime sets the ClusterCreateTime field's value. +func (s *AwsRedshiftClusterDetails) SetClusterCreateTime(v string) *AwsRedshiftClusterDetails { + s.ClusterCreateTime = &v return s } -// SetDbSubnetGroupName sets the DbSubnetGroupName field's value. -func (s *AwsRdsDbPendingModifiedValues) SetDbSubnetGroupName(v string) *AwsRdsDbPendingModifiedValues { - s.DbSubnetGroupName = &v +// SetClusterIdentifier sets the ClusterIdentifier field's value. +func (s *AwsRedshiftClusterDetails) SetClusterIdentifier(v string) *AwsRedshiftClusterDetails { + s.ClusterIdentifier = &v return s } -// SetEngineVersion sets the EngineVersion field's value. -func (s *AwsRdsDbPendingModifiedValues) SetEngineVersion(v string) *AwsRdsDbPendingModifiedValues { - s.EngineVersion = &v +// SetClusterNodes sets the ClusterNodes field's value. +func (s *AwsRedshiftClusterDetails) SetClusterNodes(v []*AwsRedshiftClusterClusterNode) *AwsRedshiftClusterDetails { + s.ClusterNodes = v return s } -// SetIops sets the Iops field's value. -func (s *AwsRdsDbPendingModifiedValues) SetIops(v int64) *AwsRdsDbPendingModifiedValues { - s.Iops = &v +// SetClusterParameterGroups sets the ClusterParameterGroups field's value. +func (s *AwsRedshiftClusterDetails) SetClusterParameterGroups(v []*AwsRedshiftClusterClusterParameterGroup) *AwsRedshiftClusterDetails { + s.ClusterParameterGroups = v return s } -// SetLicenseModel sets the LicenseModel field's value. -func (s *AwsRdsDbPendingModifiedValues) SetLicenseModel(v string) *AwsRdsDbPendingModifiedValues { - s.LicenseModel = &v +// SetClusterPublicKey sets the ClusterPublicKey field's value. +func (s *AwsRedshiftClusterDetails) SetClusterPublicKey(v string) *AwsRedshiftClusterDetails { + s.ClusterPublicKey = &v return s } -// SetMasterUserPassword sets the MasterUserPassword field's value. -func (s *AwsRdsDbPendingModifiedValues) SetMasterUserPassword(v string) *AwsRdsDbPendingModifiedValues { - s.MasterUserPassword = &v +// SetClusterRevisionNumber sets the ClusterRevisionNumber field's value. +func (s *AwsRedshiftClusterDetails) SetClusterRevisionNumber(v string) *AwsRedshiftClusterDetails { + s.ClusterRevisionNumber = &v return s } -// SetMultiAZ sets the MultiAZ field's value. -func (s *AwsRdsDbPendingModifiedValues) SetMultiAZ(v bool) *AwsRdsDbPendingModifiedValues { - s.MultiAZ = &v +// SetClusterSecurityGroups sets the ClusterSecurityGroups field's value. +func (s *AwsRedshiftClusterDetails) SetClusterSecurityGroups(v []*AwsRedshiftClusterClusterSecurityGroup) *AwsRedshiftClusterDetails { + s.ClusterSecurityGroups = v return s } -// SetPendingCloudWatchLogsExports sets the PendingCloudWatchLogsExports field's value. -func (s *AwsRdsDbPendingModifiedValues) SetPendingCloudWatchLogsExports(v *AwsRdsPendingCloudWatchLogsExports) *AwsRdsDbPendingModifiedValues { - s.PendingCloudWatchLogsExports = v +// SetClusterSnapshotCopyStatus sets the ClusterSnapshotCopyStatus field's value. +func (s *AwsRedshiftClusterDetails) SetClusterSnapshotCopyStatus(v *AwsRedshiftClusterClusterSnapshotCopyStatus) *AwsRedshiftClusterDetails { + s.ClusterSnapshotCopyStatus = v return s } -// SetPort sets the Port field's value. -func (s *AwsRdsDbPendingModifiedValues) SetPort(v int64) *AwsRdsDbPendingModifiedValues { - s.Port = &v +// SetClusterStatus sets the ClusterStatus field's value. +func (s *AwsRedshiftClusterDetails) SetClusterStatus(v string) *AwsRedshiftClusterDetails { + s.ClusterStatus = &v return s } -// SetProcessorFeatures sets the ProcessorFeatures field's value. -func (s *AwsRdsDbPendingModifiedValues) SetProcessorFeatures(v []*AwsRdsDbProcessorFeature) *AwsRdsDbPendingModifiedValues { - s.ProcessorFeatures = v +// SetClusterSubnetGroupName sets the ClusterSubnetGroupName field's value. +func (s *AwsRedshiftClusterDetails) SetClusterSubnetGroupName(v string) *AwsRedshiftClusterDetails { + s.ClusterSubnetGroupName = &v return s } -// SetStorageType sets the StorageType field's value. -func (s *AwsRdsDbPendingModifiedValues) SetStorageType(v string) *AwsRdsDbPendingModifiedValues { - s.StorageType = &v +// SetClusterVersion sets the ClusterVersion field's value. +func (s *AwsRedshiftClusterDetails) SetClusterVersion(v string) *AwsRedshiftClusterDetails { + s.ClusterVersion = &v return s } -type AwsRdsDbProcessorFeature struct { - _ struct{} `type:"structure"` - - Name *string `type:"string"` - - Value *string `type:"string"` +// SetDBName sets the DBName field's value. +func (s *AwsRedshiftClusterDetails) SetDBName(v string) *AwsRedshiftClusterDetails { + s.DBName = &v + return s } -// String returns the string representation -func (s AwsRdsDbProcessorFeature) String() string { - return awsutil.Prettify(s) +// SetDeferredMaintenanceWindows sets the DeferredMaintenanceWindows field's value. +func (s *AwsRedshiftClusterDetails) SetDeferredMaintenanceWindows(v []*AwsRedshiftClusterDeferredMaintenanceWindow) *AwsRedshiftClusterDetails { + s.DeferredMaintenanceWindows = v + return s } -// GoString returns the string representation -func (s AwsRdsDbProcessorFeature) GoString() string { - return s.String() +// SetElasticIpStatus sets the ElasticIpStatus field's value. +func (s *AwsRedshiftClusterDetails) SetElasticIpStatus(v *AwsRedshiftClusterElasticIpStatus) *AwsRedshiftClusterDetails { + s.ElasticIpStatus = v + return s } -// SetName sets the Name field's value. -func (s *AwsRdsDbProcessorFeature) SetName(v string) *AwsRdsDbProcessorFeature { - s.Name = &v +// SetElasticResizeNumberOfNodeOptions sets the ElasticResizeNumberOfNodeOptions field's value. +func (s *AwsRedshiftClusterDetails) SetElasticResizeNumberOfNodeOptions(v string) *AwsRedshiftClusterDetails { + s.ElasticResizeNumberOfNodeOptions = &v return s } -// SetValue sets the Value field's value. -func (s *AwsRdsDbProcessorFeature) SetValue(v string) *AwsRdsDbProcessorFeature { - s.Value = &v +// SetEncrypted sets the Encrypted field's value. +func (s *AwsRedshiftClusterDetails) SetEncrypted(v bool) *AwsRedshiftClusterDetails { + s.Encrypted = &v return s } -type AwsRdsDbSnapshotDetails struct { - _ struct{} `type:"structure"` - - AllocatedStorage *int64 `type:"integer"` - - AvailabilityZone *string `type:"string"` - - DbInstanceIdentifier *string `type:"string"` - - DbSnapshotIdentifier *string `type:"string"` - - DbiResourceId *string `type:"string"` - - Encrypted *bool `type:"boolean"` - - Engine *string `type:"string"` - - EngineVersion *string `type:"string"` - - IamDatabaseAuthenticationEnabled *bool `type:"boolean"` - - InstanceCreateTime *string `type:"string"` - - Iops *int64 `type:"integer"` - - KmsKeyId *string `type:"string"` - - LicenseModel *string `type:"string"` - - MasterUsername *string `type:"string"` - - OptionGroupName *string `type:"string"` - - PercentProgress *int64 `type:"integer"` - - Port *int64 `type:"integer"` - - ProcessorFeatures []*AwsRdsDbProcessorFeature `type:"list"` - - SnapshotCreateTime *string `type:"string"` - - SnapshotType *string `type:"string"` - - SourceDbSnapshotIdentifier *string `type:"string"` - - SourceRegion *string `type:"string"` - - Status *string `type:"string"` - - StorageType *string `type:"string"` - - TdeCredentialArn *string `type:"string"` - - Timezone *string `type:"string"` - - VpcId *string `type:"string"` +// SetEndpoint sets the Endpoint field's value. +func (s *AwsRedshiftClusterDetails) SetEndpoint(v *AwsRedshiftClusterEndpoint) *AwsRedshiftClusterDetails { + s.Endpoint = v + return s } -// String returns the string representation -func (s AwsRdsDbSnapshotDetails) String() string { - return awsutil.Prettify(s) +// SetEnhancedVpcRouting sets the EnhancedVpcRouting field's value. +func (s *AwsRedshiftClusterDetails) SetEnhancedVpcRouting(v bool) *AwsRedshiftClusterDetails { + s.EnhancedVpcRouting = &v + return s } -// GoString returns the string representation -func (s AwsRdsDbSnapshotDetails) GoString() string { - return s.String() +// SetExpectedNextSnapshotScheduleTime sets the ExpectedNextSnapshotScheduleTime field's value. +func (s *AwsRedshiftClusterDetails) SetExpectedNextSnapshotScheduleTime(v string) *AwsRedshiftClusterDetails { + s.ExpectedNextSnapshotScheduleTime = &v + return s } -// SetAllocatedStorage sets the AllocatedStorage field's value. -func (s *AwsRdsDbSnapshotDetails) SetAllocatedStorage(v int64) *AwsRdsDbSnapshotDetails { - s.AllocatedStorage = &v +// SetExpectedNextSnapshotScheduleTimeStatus sets the ExpectedNextSnapshotScheduleTimeStatus field's value. +func (s *AwsRedshiftClusterDetails) SetExpectedNextSnapshotScheduleTimeStatus(v string) *AwsRedshiftClusterDetails { + s.ExpectedNextSnapshotScheduleTimeStatus = &v return s } -// SetAvailabilityZone sets the AvailabilityZone field's value. -func (s *AwsRdsDbSnapshotDetails) SetAvailabilityZone(v string) *AwsRdsDbSnapshotDetails { - s.AvailabilityZone = &v +// SetHsmStatus sets the HsmStatus field's value. +func (s *AwsRedshiftClusterDetails) SetHsmStatus(v *AwsRedshiftClusterHsmStatus) *AwsRedshiftClusterDetails { + s.HsmStatus = v return s } -// SetDbInstanceIdentifier sets the DbInstanceIdentifier field's value. -func (s *AwsRdsDbSnapshotDetails) SetDbInstanceIdentifier(v string) *AwsRdsDbSnapshotDetails { - s.DbInstanceIdentifier = &v +// SetIamRoles sets the IamRoles field's value. +func (s *AwsRedshiftClusterDetails) SetIamRoles(v []*AwsRedshiftClusterIamRole) *AwsRedshiftClusterDetails { + s.IamRoles = v return s } -// SetDbSnapshotIdentifier sets the DbSnapshotIdentifier field's value. -func (s *AwsRdsDbSnapshotDetails) SetDbSnapshotIdentifier(v string) *AwsRdsDbSnapshotDetails { - s.DbSnapshotIdentifier = &v +// SetKmsKeyId sets the KmsKeyId field's value. +func (s *AwsRedshiftClusterDetails) SetKmsKeyId(v string) *AwsRedshiftClusterDetails { + s.KmsKeyId = &v return s } -// SetDbiResourceId sets the DbiResourceId field's value. -func (s *AwsRdsDbSnapshotDetails) SetDbiResourceId(v string) *AwsRdsDbSnapshotDetails { - s.DbiResourceId = &v +// SetMaintenanceTrackName sets the MaintenanceTrackName field's value. +func (s *AwsRedshiftClusterDetails) SetMaintenanceTrackName(v string) *AwsRedshiftClusterDetails { + s.MaintenanceTrackName = &v return s } -// SetEncrypted sets the Encrypted field's value. -func (s *AwsRdsDbSnapshotDetails) SetEncrypted(v bool) *AwsRdsDbSnapshotDetails { - s.Encrypted = &v +// SetManualSnapshotRetentionPeriod sets the ManualSnapshotRetentionPeriod field's value. +func (s *AwsRedshiftClusterDetails) SetManualSnapshotRetentionPeriod(v int64) *AwsRedshiftClusterDetails { + s.ManualSnapshotRetentionPeriod = &v return s } -// SetEngine sets the Engine field's value. -func (s *AwsRdsDbSnapshotDetails) SetEngine(v string) *AwsRdsDbSnapshotDetails { - s.Engine = &v +// SetMasterUsername sets the MasterUsername field's value. +func (s *AwsRedshiftClusterDetails) SetMasterUsername(v string) *AwsRedshiftClusterDetails { + s.MasterUsername = &v return s } -// SetEngineVersion sets the EngineVersion field's value. -func (s *AwsRdsDbSnapshotDetails) SetEngineVersion(v string) *AwsRdsDbSnapshotDetails { - s.EngineVersion = &v +// SetNextMaintenanceWindowStartTime sets the NextMaintenanceWindowStartTime field's value. +func (s *AwsRedshiftClusterDetails) SetNextMaintenanceWindowStartTime(v string) *AwsRedshiftClusterDetails { + s.NextMaintenanceWindowStartTime = &v return s } -// SetIamDatabaseAuthenticationEnabled sets the IamDatabaseAuthenticationEnabled field's value. -func (s *AwsRdsDbSnapshotDetails) SetIamDatabaseAuthenticationEnabled(v bool) *AwsRdsDbSnapshotDetails { - s.IamDatabaseAuthenticationEnabled = &v +// SetNodeType sets the NodeType field's value. +func (s *AwsRedshiftClusterDetails) SetNodeType(v string) *AwsRedshiftClusterDetails { + s.NodeType = &v return s } -// SetInstanceCreateTime sets the InstanceCreateTime field's value. -func (s *AwsRdsDbSnapshotDetails) SetInstanceCreateTime(v string) *AwsRdsDbSnapshotDetails { - s.InstanceCreateTime = &v +// SetNumberOfNodes sets the NumberOfNodes field's value. +func (s *AwsRedshiftClusterDetails) SetNumberOfNodes(v int64) *AwsRedshiftClusterDetails { + s.NumberOfNodes = &v return s } -// SetIops sets the Iops field's value. -func (s *AwsRdsDbSnapshotDetails) SetIops(v int64) *AwsRdsDbSnapshotDetails { - s.Iops = &v +// SetPendingActions sets the PendingActions field's value. +func (s *AwsRedshiftClusterDetails) SetPendingActions(v []*string) *AwsRedshiftClusterDetails { + s.PendingActions = v return s } -// SetKmsKeyId sets the KmsKeyId field's value. -func (s *AwsRdsDbSnapshotDetails) SetKmsKeyId(v string) *AwsRdsDbSnapshotDetails { - s.KmsKeyId = &v +// SetPendingModifiedValues sets the PendingModifiedValues field's value. +func (s *AwsRedshiftClusterDetails) SetPendingModifiedValues(v *AwsRedshiftClusterPendingModifiedValues) *AwsRedshiftClusterDetails { + s.PendingModifiedValues = v return s } -// SetLicenseModel sets the LicenseModel field's value. -func (s *AwsRdsDbSnapshotDetails) SetLicenseModel(v string) *AwsRdsDbSnapshotDetails { - s.LicenseModel = &v +// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value. +func (s *AwsRedshiftClusterDetails) SetPreferredMaintenanceWindow(v string) *AwsRedshiftClusterDetails { + s.PreferredMaintenanceWindow = &v return s } -// SetMasterUsername sets the MasterUsername field's value. -func (s *AwsRdsDbSnapshotDetails) SetMasterUsername(v string) *AwsRdsDbSnapshotDetails { - s.MasterUsername = &v +// SetPubliclyAccessible sets the PubliclyAccessible field's value. +func (s *AwsRedshiftClusterDetails) SetPubliclyAccessible(v bool) *AwsRedshiftClusterDetails { + s.PubliclyAccessible = &v return s } -// SetOptionGroupName sets the OptionGroupName field's value. -func (s *AwsRdsDbSnapshotDetails) SetOptionGroupName(v string) *AwsRdsDbSnapshotDetails { - s.OptionGroupName = &v +// SetResizeInfo sets the ResizeInfo field's value. +func (s *AwsRedshiftClusterDetails) SetResizeInfo(v *AwsRedshiftClusterResizeInfo) *AwsRedshiftClusterDetails { + s.ResizeInfo = v return s } -// SetPercentProgress sets the PercentProgress field's value. -func (s *AwsRdsDbSnapshotDetails) SetPercentProgress(v int64) *AwsRdsDbSnapshotDetails { - s.PercentProgress = &v +// SetRestoreStatus sets the RestoreStatus field's value. +func (s *AwsRedshiftClusterDetails) SetRestoreStatus(v *AwsRedshiftClusterRestoreStatus) *AwsRedshiftClusterDetails { + s.RestoreStatus = v return s } -// SetPort sets the Port field's value. -func (s *AwsRdsDbSnapshotDetails) SetPort(v int64) *AwsRdsDbSnapshotDetails { - s.Port = &v +// SetSnapshotScheduleIdentifier sets the SnapshotScheduleIdentifier field's value. +func (s *AwsRedshiftClusterDetails) SetSnapshotScheduleIdentifier(v string) *AwsRedshiftClusterDetails { + s.SnapshotScheduleIdentifier = &v return s } -// SetProcessorFeatures sets the ProcessorFeatures field's value. -func (s *AwsRdsDbSnapshotDetails) SetProcessorFeatures(v []*AwsRdsDbProcessorFeature) *AwsRdsDbSnapshotDetails { - s.ProcessorFeatures = v +// SetSnapshotScheduleState sets the SnapshotScheduleState field's value. +func (s *AwsRedshiftClusterDetails) SetSnapshotScheduleState(v string) *AwsRedshiftClusterDetails { + s.SnapshotScheduleState = &v return s } -// SetSnapshotCreateTime sets the SnapshotCreateTime field's value. -func (s *AwsRdsDbSnapshotDetails) SetSnapshotCreateTime(v string) *AwsRdsDbSnapshotDetails { - s.SnapshotCreateTime = &v +// SetVpcId sets the VpcId field's value. +func (s *AwsRedshiftClusterDetails) SetVpcId(v string) *AwsRedshiftClusterDetails { + s.VpcId = &v return s } -// SetSnapshotType sets the SnapshotType field's value. -func (s *AwsRdsDbSnapshotDetails) SetSnapshotType(v string) *AwsRdsDbSnapshotDetails { - s.SnapshotType = &v +// SetVpcSecurityGroups sets the VpcSecurityGroups field's value. +func (s *AwsRedshiftClusterDetails) SetVpcSecurityGroups(v []*AwsRedshiftClusterVpcSecurityGroup) *AwsRedshiftClusterDetails { + s.VpcSecurityGroups = v return s } -// SetSourceDbSnapshotIdentifier sets the SourceDbSnapshotIdentifier field's value. -func (s *AwsRdsDbSnapshotDetails) SetSourceDbSnapshotIdentifier(v string) *AwsRdsDbSnapshotDetails { - s.SourceDbSnapshotIdentifier = &v - return s +// The status of the elastic IP (EIP) address for an Amazon Redshift cluster. +type AwsRedshiftClusterElasticIpStatus struct { + _ struct{} `type:"structure"` + + // The elastic IP address for the cluster. + ElasticIp *string `type:"string"` + + // The status of the elastic IP address. + Status *string `type:"string"` } -// SetSourceRegion sets the SourceRegion field's value. -func (s *AwsRdsDbSnapshotDetails) SetSourceRegion(v string) *AwsRdsDbSnapshotDetails { - s.SourceRegion = &v +// String returns the string representation +func (s AwsRedshiftClusterElasticIpStatus) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsRedshiftClusterElasticIpStatus) GoString() string { + return s.String() +} + +// SetElasticIp sets the ElasticIp field's value. +func (s *AwsRedshiftClusterElasticIpStatus) SetElasticIp(v string) *AwsRedshiftClusterElasticIpStatus { + s.ElasticIp = &v return s } // SetStatus sets the Status field's value. -func (s *AwsRdsDbSnapshotDetails) SetStatus(v string) *AwsRdsDbSnapshotDetails { +func (s *AwsRedshiftClusterElasticIpStatus) SetStatus(v string) *AwsRedshiftClusterElasticIpStatus { s.Status = &v return s } -// SetStorageType sets the StorageType field's value. -func (s *AwsRdsDbSnapshotDetails) SetStorageType(v string) *AwsRdsDbSnapshotDetails { - s.StorageType = &v - return s +// The connection endpoint for an Amazon Redshift cluster. +type AwsRedshiftClusterEndpoint struct { + _ struct{} `type:"structure"` + + // The DNS address of the cluster. + Address *string `type:"string"` + + // The port that the database engine listens on. + Port *int64 `type:"integer"` +} + +// String returns the string representation +func (s AwsRedshiftClusterEndpoint) String() string { + return awsutil.Prettify(s) } -// SetTdeCredentialArn sets the TdeCredentialArn field's value. -func (s *AwsRdsDbSnapshotDetails) SetTdeCredentialArn(v string) *AwsRdsDbSnapshotDetails { - s.TdeCredentialArn = &v - return s +// GoString returns the string representation +func (s AwsRedshiftClusterEndpoint) GoString() string { + return s.String() } -// SetTimezone sets the Timezone field's value. -func (s *AwsRdsDbSnapshotDetails) SetTimezone(v string) *AwsRdsDbSnapshotDetails { - s.Timezone = &v +// SetAddress sets the Address field's value. +func (s *AwsRedshiftClusterEndpoint) SetAddress(v string) *AwsRedshiftClusterEndpoint { + s.Address = &v return s } -// SetVpcId sets the VpcId field's value. -func (s *AwsRdsDbSnapshotDetails) SetVpcId(v string) *AwsRdsDbSnapshotDetails { - s.VpcId = &v +// SetPort sets the Port field's value. +func (s *AwsRedshiftClusterEndpoint) SetPort(v int64) *AwsRedshiftClusterEndpoint { + s.Port = &v return s } -// Information about the status of a read replica. -type AwsRdsDbStatusInfo struct { +// Information about whether an Amazon Redshift cluster finished applying any +// hardware changes to security module (HSM) settings that were specified in +// a modify cluster command. +type AwsRedshiftClusterHsmStatus struct { _ struct{} `type:"structure"` - // If the read replica is currently in an error state, provides the error details. - Message *string `type:"string"` + // The name of the HSM client certificate that the Amazon Redshift cluster uses + // to retrieve the data encryption keys that are stored in an HSM. + HsmClientCertificateIdentifier *string `type:"string"` - // Whether the read replica instance is operating normally. - Normal *bool `type:"boolean"` + // The name of the HSM configuration that contains the information that the + // Amazon Redshift cluster can use to retrieve and store keys in an HSM. + HsmConfigurationIdentifier *string `type:"string"` - // The status of the read replica instance. + // Indicates whether the Amazon Redshift cluster has finished applying any HSM + // settings changes specified in a modify cluster command. + // + // Type: String + // + // Valid values: active | applying Status *string `type:"string"` - - // The type of status. For a read replica, the status type is read replication. - StatusType *string `type:"string"` } // String returns the string representation -func (s AwsRdsDbStatusInfo) String() string { +func (s AwsRedshiftClusterHsmStatus) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsRdsDbStatusInfo) GoString() string { +func (s AwsRedshiftClusterHsmStatus) GoString() string { return s.String() } -// SetMessage sets the Message field's value. -func (s *AwsRdsDbStatusInfo) SetMessage(v string) *AwsRdsDbStatusInfo { - s.Message = &v +// SetHsmClientCertificateIdentifier sets the HsmClientCertificateIdentifier field's value. +func (s *AwsRedshiftClusterHsmStatus) SetHsmClientCertificateIdentifier(v string) *AwsRedshiftClusterHsmStatus { + s.HsmClientCertificateIdentifier = &v return s } -// SetNormal sets the Normal field's value. -func (s *AwsRdsDbStatusInfo) SetNormal(v bool) *AwsRdsDbStatusInfo { - s.Normal = &v +// SetHsmConfigurationIdentifier sets the HsmConfigurationIdentifier field's value. +func (s *AwsRedshiftClusterHsmStatus) SetHsmConfigurationIdentifier(v string) *AwsRedshiftClusterHsmStatus { + s.HsmConfigurationIdentifier = &v return s } // SetStatus sets the Status field's value. -func (s *AwsRdsDbStatusInfo) SetStatus(v string) *AwsRdsDbStatusInfo { +func (s *AwsRedshiftClusterHsmStatus) SetStatus(v string) *AwsRedshiftClusterHsmStatus { s.Status = &v return s } -// SetStatusType sets the StatusType field's value. -func (s *AwsRdsDbStatusInfo) SetStatusType(v string) *AwsRdsDbStatusInfo { - s.StatusType = &v +// An IAM role that the cluster can use to access other AWS services. +type AwsRedshiftClusterIamRole struct { + _ struct{} `type:"structure"` + + // The status of the IAM role's association with the cluster. + // + // Valid values: in-sync | adding | removing + ApplyStatus *string `type:"string"` + + // The ARN of the IAM role. + IamRoleArn *string `type:"string"` +} + +// String returns the string representation +func (s AwsRedshiftClusterIamRole) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsRedshiftClusterIamRole) GoString() string { + return s.String() +} + +// SetApplyStatus sets the ApplyStatus field's value. +func (s *AwsRedshiftClusterIamRole) SetApplyStatus(v string) *AwsRedshiftClusterIamRole { + s.ApplyStatus = &v return s } -// Information about the subnet group for the database instance. -type AwsRdsDbSubnetGroup struct { +// SetIamRoleArn sets the IamRoleArn field's value. +func (s *AwsRedshiftClusterIamRole) SetIamRoleArn(v string) *AwsRedshiftClusterIamRole { + s.IamRoleArn = &v + return s +} + +// Changes to the Amazon Redshift cluster that are currently pending. +type AwsRedshiftClusterPendingModifiedValues struct { _ struct{} `type:"structure"` - // The ARN of the subnet group. - DbSubnetGroupArn *string `type:"string"` + // The pending or in-progress change to the automated snapshot retention period. + AutomatedSnapshotRetentionPeriod *int64 `type:"integer"` - // The description of the subnet group. - DbSubnetGroupDescription *string `type:"string"` + // The pending or in-progress change to the identifier for the cluster. + ClusterIdentifier *string `type:"string"` - // The name of the subnet group. - DbSubnetGroupName *string `type:"string"` + // The pending or in-progress change to the cluster type. + ClusterType *string `type:"string"` - // The status of the subnet group. - SubnetGroupStatus *string `type:"string"` + // The pending or in-progress change to the service version. + ClusterVersion *string `type:"string"` - // A list of subnets in the subnet group. - Subnets []*AwsRdsDbSubnetGroupSubnet `type:"list"` + // The encryption type for a cluster. + EncryptionType *string `type:"string"` - // The VPC ID of the subnet group. - VpcId *string `type:"string"` + // Indicates whether to create the cluster with enhanced VPC routing enabled. + EnhancedVpcRouting *bool `type:"boolean"` + + // The name of the maintenance track that the cluster changes to during the + // next maintenance window. + MaintenanceTrackName *string `type:"string"` + + // The pending or in-progress change to the master user password for the cluster. + MasterUserPassword *string `type:"string"` + + // The pending or in-progress change to the cluster's node type. + NodeType *string `type:"string"` + + // The pending or in-progress change to the number of nodes in the cluster. + NumberOfNodes *int64 `type:"integer"` + + // The pending or in-progress change to whether the cluster can be connected + // to from the public network. + PubliclyAccessible *bool `type:"boolean"` } // String returns the string representation -func (s AwsRdsDbSubnetGroup) String() string { +func (s AwsRedshiftClusterPendingModifiedValues) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsRdsDbSubnetGroup) GoString() string { +func (s AwsRedshiftClusterPendingModifiedValues) GoString() string { return s.String() } -// SetDbSubnetGroupArn sets the DbSubnetGroupArn field's value. -func (s *AwsRdsDbSubnetGroup) SetDbSubnetGroupArn(v string) *AwsRdsDbSubnetGroup { - s.DbSubnetGroupArn = &v +// SetAutomatedSnapshotRetentionPeriod sets the AutomatedSnapshotRetentionPeriod field's value. +func (s *AwsRedshiftClusterPendingModifiedValues) SetAutomatedSnapshotRetentionPeriod(v int64) *AwsRedshiftClusterPendingModifiedValues { + s.AutomatedSnapshotRetentionPeriod = &v return s } -// SetDbSubnetGroupDescription sets the DbSubnetGroupDescription field's value. -func (s *AwsRdsDbSubnetGroup) SetDbSubnetGroupDescription(v string) *AwsRdsDbSubnetGroup { - s.DbSubnetGroupDescription = &v +// SetClusterIdentifier sets the ClusterIdentifier field's value. +func (s *AwsRedshiftClusterPendingModifiedValues) SetClusterIdentifier(v string) *AwsRedshiftClusterPendingModifiedValues { + s.ClusterIdentifier = &v return s } -// SetDbSubnetGroupName sets the DbSubnetGroupName field's value. -func (s *AwsRdsDbSubnetGroup) SetDbSubnetGroupName(v string) *AwsRdsDbSubnetGroup { - s.DbSubnetGroupName = &v +// SetClusterType sets the ClusterType field's value. +func (s *AwsRedshiftClusterPendingModifiedValues) SetClusterType(v string) *AwsRedshiftClusterPendingModifiedValues { + s.ClusterType = &v return s } -// SetSubnetGroupStatus sets the SubnetGroupStatus field's value. -func (s *AwsRdsDbSubnetGroup) SetSubnetGroupStatus(v string) *AwsRdsDbSubnetGroup { - s.SubnetGroupStatus = &v +// SetClusterVersion sets the ClusterVersion field's value. +func (s *AwsRedshiftClusterPendingModifiedValues) SetClusterVersion(v string) *AwsRedshiftClusterPendingModifiedValues { + s.ClusterVersion = &v return s } -// SetSubnets sets the Subnets field's value. -func (s *AwsRdsDbSubnetGroup) SetSubnets(v []*AwsRdsDbSubnetGroupSubnet) *AwsRdsDbSubnetGroup { - s.Subnets = v +// SetEncryptionType sets the EncryptionType field's value. +func (s *AwsRedshiftClusterPendingModifiedValues) SetEncryptionType(v string) *AwsRedshiftClusterPendingModifiedValues { + s.EncryptionType = &v return s } -// SetVpcId sets the VpcId field's value. -func (s *AwsRdsDbSubnetGroup) SetVpcId(v string) *AwsRdsDbSubnetGroup { - s.VpcId = &v +// SetEnhancedVpcRouting sets the EnhancedVpcRouting field's value. +func (s *AwsRedshiftClusterPendingModifiedValues) SetEnhancedVpcRouting(v bool) *AwsRedshiftClusterPendingModifiedValues { + s.EnhancedVpcRouting = &v return s } -// Information about a subnet in a subnet group. -type AwsRdsDbSubnetGroupSubnet struct { - _ struct{} `type:"structure"` +// SetMaintenanceTrackName sets the MaintenanceTrackName field's value. +func (s *AwsRedshiftClusterPendingModifiedValues) SetMaintenanceTrackName(v string) *AwsRedshiftClusterPendingModifiedValues { + s.MaintenanceTrackName = &v + return s +} - // Information about the Availability Zone for a subnet in the subnet group. - SubnetAvailabilityZone *AwsRdsDbSubnetGroupSubnetAvailabilityZone `type:"structure"` +// SetMasterUserPassword sets the MasterUserPassword field's value. +func (s *AwsRedshiftClusterPendingModifiedValues) SetMasterUserPassword(v string) *AwsRedshiftClusterPendingModifiedValues { + s.MasterUserPassword = &v + return s +} - // The identifier of a subnet in the subnet group. - SubnetIdentifier *string `type:"string"` +// SetNodeType sets the NodeType field's value. +func (s *AwsRedshiftClusterPendingModifiedValues) SetNodeType(v string) *AwsRedshiftClusterPendingModifiedValues { + s.NodeType = &v + return s +} - // The status of a subnet in the subnet group. - SubnetStatus *string `type:"string"` +// SetNumberOfNodes sets the NumberOfNodes field's value. +func (s *AwsRedshiftClusterPendingModifiedValues) SetNumberOfNodes(v int64) *AwsRedshiftClusterPendingModifiedValues { + s.NumberOfNodes = &v + return s +} + +// SetPubliclyAccessible sets the PubliclyAccessible field's value. +func (s *AwsRedshiftClusterPendingModifiedValues) SetPubliclyAccessible(v bool) *AwsRedshiftClusterPendingModifiedValues { + s.PubliclyAccessible = &v + return s +} + +// Information about the resize operation for the cluster. +type AwsRedshiftClusterResizeInfo struct { + _ struct{} `type:"structure"` + + // Indicates whether the resize operation can be canceled. + AllowCancelResize *bool `type:"boolean"` + + // The type of resize operation. + // + // Valid values: ClassicResize + ResizeType *string `type:"string"` } // String returns the string representation -func (s AwsRdsDbSubnetGroupSubnet) String() string { +func (s AwsRedshiftClusterResizeInfo) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsRdsDbSubnetGroupSubnet) GoString() string { +func (s AwsRedshiftClusterResizeInfo) GoString() string { return s.String() } -// SetSubnetAvailabilityZone sets the SubnetAvailabilityZone field's value. -func (s *AwsRdsDbSubnetGroupSubnet) SetSubnetAvailabilityZone(v *AwsRdsDbSubnetGroupSubnetAvailabilityZone) *AwsRdsDbSubnetGroupSubnet { - s.SubnetAvailabilityZone = v - return s -} - -// SetSubnetIdentifier sets the SubnetIdentifier field's value. -func (s *AwsRdsDbSubnetGroupSubnet) SetSubnetIdentifier(v string) *AwsRdsDbSubnetGroupSubnet { - s.SubnetIdentifier = &v +// SetAllowCancelResize sets the AllowCancelResize field's value. +func (s *AwsRedshiftClusterResizeInfo) SetAllowCancelResize(v bool) *AwsRedshiftClusterResizeInfo { + s.AllowCancelResize = &v return s } -// SetSubnetStatus sets the SubnetStatus field's value. -func (s *AwsRdsDbSubnetGroupSubnet) SetSubnetStatus(v string) *AwsRdsDbSubnetGroupSubnet { - s.SubnetStatus = &v +// SetResizeType sets the ResizeType field's value. +func (s *AwsRedshiftClusterResizeInfo) SetResizeType(v string) *AwsRedshiftClusterResizeInfo { + s.ResizeType = &v return s } -// An Availability Zone for a subnet in a subnet group. -type AwsRdsDbSubnetGroupSubnetAvailabilityZone struct { +// Information about the status of a cluster restore action. It only applies +// if the cluster was created by restoring a snapshot. +type AwsRedshiftClusterRestoreStatus struct { _ struct{} `type:"structure"` - // The name of the Availability Zone for a subnet in the subnet group. - Name *string `type:"string"` + // The number of megabytes per second being transferred from the backup storage. + // Returns the average rate for a completed backup. + // + // This field is only updated when you restore to DC2 and DS2 node types. + CurrentRestoreRateInMegaBytesPerSecond *float64 `type:"double"` + + // The amount of time an in-progress restore has been running, or the amount + // of time it took a completed restore to finish. + // + // This field is only updated when you restore to DC2 and DS2 node types. + ElapsedTimeInSeconds *int64 `type:"long"` + + // The estimate of the time remaining before the restore is complete. Returns + // 0 for a completed restore. + // + // This field is only updated when you restore to DC2 and DS2 node types. + EstimatedTimeToCompletionInSeconds *int64 `type:"long"` + + // The number of megabytes that were transferred from snapshot storage. + // + // This field is only updated when you restore to DC2 and DS2 node types. + ProgressInMegaBytes *int64 `type:"long"` + + // The size of the set of snapshot data that was used to restore the cluster. + // + // This field is only updated when you restore to DC2 and DS2 node types. + SnapshotSizeInMegaBytes *int64 `type:"long"` + + // The status of the restore action. + // + // Valid values: starting | restoring | completed | failed + Status *string `type:"string"` } // String returns the string representation -func (s AwsRdsDbSubnetGroupSubnetAvailabilityZone) String() string { +func (s AwsRedshiftClusterRestoreStatus) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsRdsDbSubnetGroupSubnetAvailabilityZone) GoString() string { +func (s AwsRedshiftClusterRestoreStatus) GoString() string { return s.String() } -// SetName sets the Name field's value. -func (s *AwsRdsDbSubnetGroupSubnetAvailabilityZone) SetName(v string) *AwsRdsDbSubnetGroupSubnetAvailabilityZone { - s.Name = &v +// SetCurrentRestoreRateInMegaBytesPerSecond sets the CurrentRestoreRateInMegaBytesPerSecond field's value. +func (s *AwsRedshiftClusterRestoreStatus) SetCurrentRestoreRateInMegaBytesPerSecond(v float64) *AwsRedshiftClusterRestoreStatus { + s.CurrentRestoreRateInMegaBytesPerSecond = &v return s } -// Identifies the log types to enable and disable. -type AwsRdsPendingCloudWatchLogsExports struct { +// SetElapsedTimeInSeconds sets the ElapsedTimeInSeconds field's value. +func (s *AwsRedshiftClusterRestoreStatus) SetElapsedTimeInSeconds(v int64) *AwsRedshiftClusterRestoreStatus { + s.ElapsedTimeInSeconds = &v + return s +} + +// SetEstimatedTimeToCompletionInSeconds sets the EstimatedTimeToCompletionInSeconds field's value. +func (s *AwsRedshiftClusterRestoreStatus) SetEstimatedTimeToCompletionInSeconds(v int64) *AwsRedshiftClusterRestoreStatus { + s.EstimatedTimeToCompletionInSeconds = &v + return s +} + +// SetProgressInMegaBytes sets the ProgressInMegaBytes field's value. +func (s *AwsRedshiftClusterRestoreStatus) SetProgressInMegaBytes(v int64) *AwsRedshiftClusterRestoreStatus { + s.ProgressInMegaBytes = &v + return s +} + +// SetSnapshotSizeInMegaBytes sets the SnapshotSizeInMegaBytes field's value. +func (s *AwsRedshiftClusterRestoreStatus) SetSnapshotSizeInMegaBytes(v int64) *AwsRedshiftClusterRestoreStatus { + s.SnapshotSizeInMegaBytes = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *AwsRedshiftClusterRestoreStatus) SetStatus(v string) *AwsRedshiftClusterRestoreStatus { + s.Status = &v + return s +} + +// A VPC security group that the cluster belongs to, if the cluster is in a +// VPC. +type AwsRedshiftClusterVpcSecurityGroup struct { _ struct{} `type:"structure"` - // A list of log types that are being disabled. - LogTypesToDisable []*string `type:"list"` + // The status of the VPC security group. + Status *string `type:"string"` - // A list of log types that are being enabled. - LogTypesToEnable []*string `type:"list"` + // The identifier of the VPC security group. + VpcSecurityGroupId *string `type:"string"` } // String returns the string representation -func (s AwsRdsPendingCloudWatchLogsExports) String() string { +func (s AwsRedshiftClusterVpcSecurityGroup) String() string { return awsutil.Prettify(s) } // GoString returns the string representation -func (s AwsRdsPendingCloudWatchLogsExports) GoString() string { +func (s AwsRedshiftClusterVpcSecurityGroup) GoString() string { return s.String() } -// SetLogTypesToDisable sets the LogTypesToDisable field's value. -func (s *AwsRdsPendingCloudWatchLogsExports) SetLogTypesToDisable(v []*string) *AwsRdsPendingCloudWatchLogsExports { - s.LogTypesToDisable = v +// SetStatus sets the Status field's value. +func (s *AwsRedshiftClusterVpcSecurityGroup) SetStatus(v string) *AwsRedshiftClusterVpcSecurityGroup { + s.Status = &v return s } -// SetLogTypesToEnable sets the LogTypesToEnable field's value. -func (s *AwsRdsPendingCloudWatchLogsExports) SetLogTypesToEnable(v []*string) *AwsRdsPendingCloudWatchLogsExports { - s.LogTypesToEnable = v +// SetVpcSecurityGroupId sets the VpcSecurityGroupId field's value. +func (s *AwsRedshiftClusterVpcSecurityGroup) SetVpcSecurityGroupId(v string) *AwsRedshiftClusterVpcSecurityGroup { + s.VpcSecurityGroupId = &v return s } @@ -11639,6 +16001,9 @@ func (s *AwsSecurityFinding) SetWorkflowState(v string) *AwsSecurityFinding { // A collection of attributes that are applied to all active Security Hub-aggregated // findings and that result in a subset of findings that are included in this // insight. +// +// You can filter by up to 10 finding attributes. For each attribute, you can +// provide up to 20 filter values. type AwsSecurityFindingFilters struct { _ struct{} `type:"structure"` @@ -14918,6 +19283,9 @@ type GetFindingsInput struct { // The finding attributes used to define a condition to filter the returned // findings. // + // You can filter by up to 10 finding attributes. For each attribute, you can + // provide up to 20 filter values. + // // Note that in the available filter fields, WorkflowState is deprecated. To // search for a finding based on its workflow status, use WorkflowStatus. Filters *AwsSecurityFindingFilters `type:"structure"` @@ -16461,6 +20829,24 @@ type Member struct { // The status of the relationship between the member account and its master // account. + // + // The status can have one of the following values: + // + // * CREATED - Indicates that the master account added the member account, + // but has not yet invited the member account. + // + // * INVITED - Indicates that the master account invited the member account. + // The member account has not yet responded to the invitation. + // + // * ASSOCIATED - Indicates that the member account accepted the invitation. + // + // * REMOVED - Indicates that the master account disassociated the member + // account. + // + // * RESIGNED - Indicates that the member account disassociated themselves + // from the master account. + // + // * DELETED - Indicates that the master account deleted the member account. MemberStatus *string `type:"string"` // The timestamp for the date and time when the member account was updated. @@ -16955,8 +21341,8 @@ type PatchSummary struct { // The number of installed patches that are not part of the compliance standard. InstalledOtherCount *int64 `type:"integer"` - // The number of patches that were installed since the last time the instance - // was rebooted. + // The number of patches that were applied, but that require the instance to + // be rebooted in order to be marked as installed. InstalledPendingReboot *int64 `type:"integer"` // The number of patches that are installed but are also on a list of patches @@ -17424,6 +21810,8 @@ type Resource struct { // The canonical AWS external Region name where this resource is located. Region *string `type:"string"` + ResourceRole *string `type:"string"` + // A list of AWS tags associated with a resource at the time the finding was // processed. Tags map[string]*string `type:"map"` @@ -17494,6 +21882,12 @@ func (s *Resource) SetRegion(v string) *Resource { return s } +// SetResourceRole sets the ResourceRole field's value. +func (s *Resource) SetResourceRole(v string) *Resource { + s.ResourceRole = &v + return s +} + // SetTags sets the Tags field's value. func (s *Resource) SetTags(v map[string]*string) *Resource { s.Tags = v @@ -17578,12 +21972,30 @@ func (s *ResourceConflictException) RequestID() string { type ResourceDetails struct { _ struct{} `type:"structure"` + // contains information about a REST API in version 1 of Amazon API Gateway. + AwsApiGatewayRestApi *AwsApiGatewayRestApiDetails `type:"structure"` + + // Provides information about a version 1 Amazon API Gateway stage. + AwsApiGatewayStage *AwsApiGatewayStageDetails `type:"structure"` + + // Contains information about a version 2 API in Amazon API Gateway. + AwsApiGatewayV2Api *AwsApiGatewayV2ApiDetails `type:"structure"` + + // Contains information about a version 2 stage for Amazon API Gateway. + AwsApiGatewayV2Stage *AwsApiGatewayV2StageDetails `type:"structure"` + // Details for an autoscaling group. AwsAutoScalingAutoScalingGroup *AwsAutoScalingAutoScalingGroupDetails `type:"structure"` + // Provides details about an AWS Certificate Manager certificate. + AwsCertificateManagerCertificate *AwsCertificateManagerCertificateDetails `type:"structure"` + // Details about a CloudFront distribution. AwsCloudFrontDistribution *AwsCloudFrontDistributionDetails `type:"structure"` + // Provides details about a CloudTrail trail. + AwsCloudTrailTrail *AwsCloudTrailTrailDetails `type:"structure"` + // Details for an AWS CodeBuild project. AwsCodeBuildProject *AwsCodeBuildProjectDetails `type:"structure"` @@ -17611,12 +22023,18 @@ type ResourceDetails struct { // Details for an Elasticsearch domain. AwsElasticsearchDomain *AwsElasticsearchDomainDetails `type:"structure"` + // Contains details about a Classic Load Balancer. + AwsElbLoadBalancer *AwsElbLoadBalancerDetails `type:"structure"` + // Details about a load balancer. AwsElbv2LoadBalancer *AwsElbv2LoadBalancerDetails `type:"structure"` // Details about an IAM access key related to a finding. AwsIamAccessKey *AwsIamAccessKeyDetails `type:"structure"` + // Contains details about an IAM group. + AwsIamGroup *AwsIamGroupDetails `type:"structure"` + // Details about an IAM permissions policy. AwsIamPolicy *AwsIamPolicyDetails `type:"structure"` @@ -17647,6 +22065,9 @@ type ResourceDetails struct { // Details about an Amazon RDS database snapshot. AwsRdsDbSnapshot *AwsRdsDbSnapshotDetails `type:"structure"` + // Details about an Amazon Redshift cluster. + AwsRedshiftCluster *AwsRedshiftClusterDetails `type:"structure"` + // Details about an Amazon S3 bucket related to a finding. AwsS3Bucket *AwsS3BucketDetails `type:"structure"` @@ -17706,18 +22127,54 @@ func (s *ResourceDetails) Validate() error { return nil } +// SetAwsApiGatewayRestApi sets the AwsApiGatewayRestApi field's value. +func (s *ResourceDetails) SetAwsApiGatewayRestApi(v *AwsApiGatewayRestApiDetails) *ResourceDetails { + s.AwsApiGatewayRestApi = v + return s +} + +// SetAwsApiGatewayStage sets the AwsApiGatewayStage field's value. +func (s *ResourceDetails) SetAwsApiGatewayStage(v *AwsApiGatewayStageDetails) *ResourceDetails { + s.AwsApiGatewayStage = v + return s +} + +// SetAwsApiGatewayV2Api sets the AwsApiGatewayV2Api field's value. +func (s *ResourceDetails) SetAwsApiGatewayV2Api(v *AwsApiGatewayV2ApiDetails) *ResourceDetails { + s.AwsApiGatewayV2Api = v + return s +} + +// SetAwsApiGatewayV2Stage sets the AwsApiGatewayV2Stage field's value. +func (s *ResourceDetails) SetAwsApiGatewayV2Stage(v *AwsApiGatewayV2StageDetails) *ResourceDetails { + s.AwsApiGatewayV2Stage = v + return s +} + // SetAwsAutoScalingAutoScalingGroup sets the AwsAutoScalingAutoScalingGroup field's value. func (s *ResourceDetails) SetAwsAutoScalingAutoScalingGroup(v *AwsAutoScalingAutoScalingGroupDetails) *ResourceDetails { s.AwsAutoScalingAutoScalingGroup = v return s } +// SetAwsCertificateManagerCertificate sets the AwsCertificateManagerCertificate field's value. +func (s *ResourceDetails) SetAwsCertificateManagerCertificate(v *AwsCertificateManagerCertificateDetails) *ResourceDetails { + s.AwsCertificateManagerCertificate = v + return s +} + // SetAwsCloudFrontDistribution sets the AwsCloudFrontDistribution field's value. func (s *ResourceDetails) SetAwsCloudFrontDistribution(v *AwsCloudFrontDistributionDetails) *ResourceDetails { s.AwsCloudFrontDistribution = v return s } +// SetAwsCloudTrailTrail sets the AwsCloudTrailTrail field's value. +func (s *ResourceDetails) SetAwsCloudTrailTrail(v *AwsCloudTrailTrailDetails) *ResourceDetails { + s.AwsCloudTrailTrail = v + return s +} + // SetAwsCodeBuildProject sets the AwsCodeBuildProject field's value. func (s *ResourceDetails) SetAwsCodeBuildProject(v *AwsCodeBuildProjectDetails) *ResourceDetails { s.AwsCodeBuildProject = v @@ -17772,6 +22229,12 @@ func (s *ResourceDetails) SetAwsElasticsearchDomain(v *AwsElasticsearchDomainDet return s } +// SetAwsElbLoadBalancer sets the AwsElbLoadBalancer field's value. +func (s *ResourceDetails) SetAwsElbLoadBalancer(v *AwsElbLoadBalancerDetails) *ResourceDetails { + s.AwsElbLoadBalancer = v + return s +} + // SetAwsElbv2LoadBalancer sets the AwsElbv2LoadBalancer field's value. func (s *ResourceDetails) SetAwsElbv2LoadBalancer(v *AwsElbv2LoadBalancerDetails) *ResourceDetails { s.AwsElbv2LoadBalancer = v @@ -17784,6 +22247,12 @@ func (s *ResourceDetails) SetAwsIamAccessKey(v *AwsIamAccessKeyDetails) *Resourc return s } +// SetAwsIamGroup sets the AwsIamGroup field's value. +func (s *ResourceDetails) SetAwsIamGroup(v *AwsIamGroupDetails) *ResourceDetails { + s.AwsIamGroup = v + return s +} + // SetAwsIamPolicy sets the AwsIamPolicy field's value. func (s *ResourceDetails) SetAwsIamPolicy(v *AwsIamPolicyDetails) *ResourceDetails { s.AwsIamPolicy = v @@ -17844,6 +22313,12 @@ func (s *ResourceDetails) SetAwsRdsDbSnapshot(v *AwsRdsDbSnapshotDetails) *Resou return s } +// SetAwsRedshiftCluster sets the AwsRedshiftCluster field's value. +func (s *ResourceDetails) SetAwsRedshiftCluster(v *AwsRedshiftClusterDetails) *ResourceDetails { + s.AwsRedshiftCluster = v + return s +} + // SetAwsS3Bucket sets the AwsS3Bucket field's value. func (s *ResourceDetails) SetAwsS3Bucket(v *AwsS3BucketDetails) *ResourceDetails { s.AwsS3Bucket = v diff --git a/service/securityhub/doc.go b/service/securityhub/doc.go index f849ae65093..1fbe2991dd2 100644 --- a/service/securityhub/doc.go +++ b/service/securityhub/doc.go @@ -26,12 +26,18 @@ // // The following throttling limits apply to using Security Hub API operations. // +// * BatchEnableStandards - RateLimit of 1 request per second, BurstLimit +// of 1 request per second. +// // * GetFindings - RateLimit of 3 requests per second. BurstLimit of 6 requests // per second. // // * UpdateFindings - RateLimit of 1 request per second. BurstLimit of 5 // requests per second. // +// * UpdateStandardsControl - RateLimit of 1 request per second, BurstLimit +// of 5 requests per second. +// // * All other operations - RateLimit of 10 requests per second. BurstLimit // of 30 requests per second. //