diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a1dada221..d1643f9b40 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,25 @@ +Release v1.44.119 (2022-10-19) +=== + +### Service Client Updates +* `service/chime-sdk-messaging`: Updates service documentation +* `service/cloudtrail`: Updates service API and documentation + * This release includes support for exporting CloudTrail Lake query results to an Amazon S3 bucket. +* `service/config`: Updates service API and documentation +* `service/connect`: Updates service API, documentation, and paginators +* `service/eventbridge`: Updates service API +* `service/managedblockchain`: Updates service API, documentation, and paginators +* `service/s3`: Updates service API and examples + * Updates internal logic for constructing API endpoints. We have added rule-based endpoints and internal model parameters. +* `service/s3control`: Updates service API + * Updates internal logic for constructing API endpoints. We have added rule-based endpoints and internal model parameters. +* `service/support-app`: Updates service API and documentation +* `service/workspaces-web`: Updates service API, documentation, and paginators + +### SDK Enhancements +* `aws/session`: Modified config resolution strategy when `$HOME` or `%USERPROFILE%` environment variables are not set. + * When the environment variables are not set, the SDK will attempt to determine the home directory using `user.Current()`. + Release v1.44.118 (2022-10-18) === diff --git a/CHANGELOG_PENDING.md b/CHANGELOG_PENDING.md index 6773dacfff..8a1927a39c 100644 --- a/CHANGELOG_PENDING.md +++ b/CHANGELOG_PENDING.md @@ -1,7 +1,5 @@ ### SDK Features ### SDK Enhancements -* `aws/session`: Modified config resolution strategy when `$HOME` or `%USERPROFILE%` environment variables are not set. - * When the environment variables are not set, the SDK will attempt to determine the home directory using `user.Current()`. ### SDK Bugs diff --git a/aws/endpoints/defaults.go b/aws/endpoints/defaults.go index 5db68b99ff..1a9d22c4ab 100644 --- a/aws/endpoints/defaults.go +++ b/aws/endpoints/defaults.go @@ -9038,6 +9038,15 @@ var awsPartition = partition{ }, Deprecated: boxedTrue, }, + endpointKey{ + Region: "fips-me-central-1", + }: endpoint{ + Hostname: "elasticfilesystem-fips.me-central-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "me-central-1", + }, + Deprecated: boxedTrue, + }, endpointKey{ Region: "fips-me-south-1", }: endpoint{ @@ -9092,6 +9101,15 @@ var awsPartition = partition{ }, Deprecated: boxedTrue, }, + endpointKey{ + Region: "me-central-1", + }: endpoint{}, + endpointKey{ + Region: "me-central-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "elasticfilesystem-fips.me-central-1.amazonaws.com", + }, endpointKey{ Region: "me-south-1", }: endpoint{}, @@ -10866,9 +10884,24 @@ var awsPartition = partition{ }, "fsx": service{ Endpoints: serviceEndpoints{ + endpointKey{ + Region: "af-south-1", + }: endpoint{}, + endpointKey{ + Region: "ap-east-1", + }: endpoint{}, endpointKey{ Region: "ap-northeast-1", }: endpoint{}, + endpointKey{ + Region: "ap-northeast-2", + }: endpoint{}, + endpointKey{ + Region: "ap-northeast-3", + }: endpoint{}, + endpointKey{ + Region: "ap-south-1", + }: endpoint{}, endpointKey{ Region: "ap-southeast-1", }: endpoint{}, @@ -10887,12 +10920,21 @@ var awsPartition = partition{ endpointKey{ Region: "eu-central-1", }: endpoint{}, + endpointKey{ + Region: "eu-north-1", + }: endpoint{}, + endpointKey{ + Region: "eu-south-1", + }: endpoint{}, endpointKey{ Region: "eu-west-1", }: endpoint{}, endpointKey{ Region: "eu-west-2", }: endpoint{}, + endpointKey{ + Region: "eu-west-3", + }: endpoint{}, endpointKey{ Region: "fips-ca-central-1", }: endpoint{ @@ -10929,6 +10971,15 @@ var awsPartition = partition{ }, Deprecated: boxedTrue, }, + endpointKey{ + Region: "fips-prod-us-west-1", + }: endpoint{ + Hostname: "fsx-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + Deprecated: boxedTrue, + }, endpointKey{ Region: "fips-prod-us-west-2", }: endpoint{ @@ -10956,6 +11007,15 @@ var awsPartition = partition{ }, Deprecated: boxedTrue, }, + endpointKey{ + Region: "fips-us-west-1", + }: endpoint{ + Hostname: "fsx-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + Deprecated: boxedTrue, + }, endpointKey{ Region: "fips-us-west-2", }: endpoint{ @@ -10965,6 +11025,9 @@ var awsPartition = partition{ }, Deprecated: boxedTrue, }, + endpointKey{ + Region: "me-south-1", + }: endpoint{}, endpointKey{ Region: "prod-ca-central-1", }: endpoint{ @@ -11019,6 +11082,24 @@ var awsPartition = partition{ }, Deprecated: boxedTrue, }, + endpointKey{ + Region: "prod-us-west-1", + }: endpoint{ + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + Deprecated: boxedTrue, + }, + endpointKey{ + Region: "prod-us-west-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "fsx-fips.us-west-1.amazonaws.com", + CredentialScope: credentialScope{ + Region: "us-west-1", + }, + Deprecated: boxedTrue, + }, endpointKey{ Region: "prod-us-west-2", }: endpoint{ @@ -11037,6 +11118,9 @@ var awsPartition = partition{ }, Deprecated: boxedTrue, }, + endpointKey{ + Region: "sa-east-1", + }: endpoint{}, endpointKey{ Region: "us-east-1", }: endpoint{}, @@ -11055,6 +11139,15 @@ var awsPartition = partition{ }: endpoint{ Hostname: "fsx-fips.us-east-2.amazonaws.com", }, + endpointKey{ + Region: "us-west-1", + }: endpoint{}, + endpointKey{ + Region: "us-west-1", + Variant: fipsVariant, + }: endpoint{ + Hostname: "fsx-fips.us-west-1.amazonaws.com", + }, endpointKey{ Region: "us-west-2", }: endpoint{}, @@ -28866,6 +28959,16 @@ var awsusgovPartition = partition{ }: endpoint{}, }, }, + "controltower": service{ + Endpoints: serviceEndpoints{ + endpointKey{ + Region: "us-gov-east-1", + }: endpoint{}, + endpointKey{ + Region: "us-gov-west-1", + }: endpoint{}, + }, + }, "data-ats.iot": service{ Defaults: endpointDefaults{ defaultKey{}: endpoint{ diff --git a/aws/version.go b/aws/version.go index 114d43b455..a356b4c252 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.44.118" +const SDKVersion = "1.44.119" diff --git a/models/apis/chime-sdk-messaging/2021-05-15/docs-2.json b/models/apis/chime-sdk-messaging/2021-05-15/docs-2.json index 6e48940ee9..aa7aca0855 100644 --- a/models/apis/chime-sdk-messaging/2021-05-15/docs-2.json +++ b/models/apis/chime-sdk-messaging/2021-05-15/docs-2.json @@ -41,7 +41,7 @@ "ListTagsForResource": "

Lists the tags applied to an Amazon Chime SDK messaging resource.

", "PutChannelMembershipPreferences": "

Sets the membership preferences of an AppInstanceUser for the specified channel. The AppInstanceUser must be a member of the channel. Only the AppInstanceUser who owns the membership can set preferences. Users in the AppInstanceAdmin and channel moderator roles can't set preferences for other users. Banned users can't set membership preferences for the channel from which they are banned.

", "RedactChannelMessage": "

Redacts message content, but not metadata. The message exists in the back end, but the action returns null content, and the state shows as redacted.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

", - "SearchChannels": "

Allows an AppInstanceUser to search the channels that they belong to. The AppInstanceUser can search by membership or external ID. An AppInstanceAdmin can search across all channels within the AppInstance.

", + "SearchChannels": "

Allows ChimeBearer to search channels by channel members. AppInstanceUsers can search across the channels that they belong to. AppInstanceAdmins can search across all channels.

", "SendChannelMessage": "

Sends a message to a particular channel that the member is a part of.

The x-amz-chime-bearer request header is mandatory. Use the AppInstanceUserArn of the user that makes the API call as the value in the header.

Also, STANDARD messages can contain 4KB of data and the 1KB of metadata. CONTROL messages can contain 30 bytes of data and no metadata.

", "TagResource": "

Applies the specified tags to the specified Amazon Chime SDK messaging resource.

", "UntagResource": "

Removes the specified tags from the specified Amazon Chime SDK messaging resource.

", @@ -1376,7 +1376,7 @@ "ChannelMessageSummary$LastUpdatedTimestamp": "

The time at which a message was last updated.

", "ChannelMessageSummary$LastEditedTimestamp": "

The time at which a message was last edited.

", "ChannelModerator$CreatedTimestamp": "

The time at which the moderator was created.

", - "ChannelSummary$LastMessageTimestamp": "

The time at which the last message in a channel was sent.

", + "ChannelSummary$LastMessageTimestamp": "

The time at which the last persistent message in a channel was sent.

", "ListChannelMessagesRequest$NotBefore": "

The initial or starting time stamp for your requested messages.

", "ListChannelMessagesRequest$NotAfter": "

The final or ending time stamp for your requested messages.

" } diff --git a/models/apis/chime-sdk-messaging/2021-05-15/endpoint-rule-set-1.json b/models/apis/chime-sdk-messaging/2021-05-15/endpoint-rule-set-1.json new file mode 100644 index 0000000000..26a18b06fd --- /dev/null +++ b/models/apis/chime-sdk-messaging/2021-05-15/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://messaging-chime-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://messaging-chime-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://messaging-chime.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://messaging-chime.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/models/apis/chime-sdk-messaging/2021-05-15/endpoint-tests-1.json b/models/apis/chime-sdk-messaging/2021-05-15/endpoint-tests-1.json new file mode 100644 index 0000000000..57f602352f --- /dev/null +++ b/models/apis/chime-sdk-messaging/2021-05-15/endpoint-tests-1.json @@ -0,0 +1,147 @@ +{ + "testCases": [ + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://messaging-chime-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://messaging-chime-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://messaging-chime.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://messaging-chime.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://messaging-chime-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://messaging-chime-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://messaging-chime.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://messaging-chime.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/cloudtrail/2013-11-01/api-2.json b/models/apis/cloudtrail/2013-11-01/api-2.json index c7fa55cfab..a6e958d35c 100644 --- a/models/apis/cloudtrail/2013-11-01/api-2.json +++ b/models/apis/cloudtrail/2013-11-01/api-2.json @@ -630,6 +630,10 @@ {"shape":"InvalidParameterException"}, {"shape":"InvalidQueryStatementException"}, {"shape":"MaxConcurrentQueriesException"}, + {"shape":"InvalidS3PrefixException"}, + {"shape":"InvalidS3BucketNameException"}, + {"shape":"InsufficientS3BucketPolicyException"}, + {"shape":"S3BucketDoesNotExistException"}, {"shape":"OperationNotPermittedException"}, {"shape":"UnsupportedOperationException"} ], @@ -987,6 +991,25 @@ "members":{ } }, + "DeliveryS3Uri":{ + "type":"string", + "max":1024, + "pattern":"s3://[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9](/.*)?" + }, + "DeliveryStatus":{ + "type":"string", + "enum":[ + "SUCCESS", + "FAILED", + "FAILED_SIGNING_FILE", + "PENDING", + "RESOURCE_NOT_FOUND", + "ACCESS_DENIED", + "ACCESS_DENIED_SIGNING_FILE", + "CANCELLED", + "UNKNOWN" + ] + }, "DescribeQueryRequest":{ "type":"structure", "required":[ @@ -1005,7 +1028,9 @@ "QueryString":{"shape":"QueryStatement"}, "QueryStatus":{"shape":"QueryStatus"}, "QueryStatistics":{"shape":"QueryStatisticsForDescribeQuery"}, - "ErrorMessage":{"shape":"ErrorMessage"} + "ErrorMessage":{"shape":"ErrorMessage"}, + "DeliveryS3Uri":{"shape":"DeliveryS3Uri"}, + "DeliveryStatus":{"shape":"DeliveryStatus"} } }, "DescribeTrailsRequest":{ @@ -2207,7 +2232,8 @@ "type":"structure", "required":["QueryStatement"], "members":{ - "QueryStatement":{"shape":"QueryStatement"} + "QueryStatement":{"shape":"QueryStatement"}, + "DeliveryS3Uri":{"shape":"DeliveryS3Uri"} } }, "StartQueryResponse":{ diff --git a/models/apis/cloudtrail/2013-11-01/docs-2.json b/models/apis/cloudtrail/2013-11-01/docs-2.json index f18bbcd04b..133806e3c8 100644 --- a/models/apis/cloudtrail/2013-11-01/docs-2.json +++ b/models/apis/cloudtrail/2013-11-01/docs-2.json @@ -10,15 +10,15 @@ "DeleteTrail": "

Deletes a trail. This operation must be called from the region in which the trail was created. DeleteTrail cannot be called on the shadow trails (replicated trails in other regions) of a trail that is enabled in all regions.

", "DescribeQuery": "

Returns metadata about a query, including query run time in milliseconds, number of events scanned and matched, and query status. You must specify an ARN for EventDataStore, and a value for QueryID.

", "DescribeTrails": "

Retrieves settings for one or more trails associated with the current region for your account.

", - "GetChannel": "

Returns the specified CloudTrail service-linked channel. Amazon Web Services services create service-linked channels to view CloudTrail events.

", + "GetChannel": "

Returns information about a specific channel. Amazon Web Services services create service-linked channels to get information about CloudTrail events on your behalf. For more information about service-linked channels, see Viewing service-linked channels for CloudTrail by using the CLI..

", "GetEventDataStore": "

Returns information about an event data store specified as either an ARN or the ID portion of the ARN.

", "GetEventSelectors": "

Describes the settings for the event selectors that you configured for your trail. The information returned for your event selectors includes the following:

For more information about logging management and data events, see the following topics in the CloudTrail User Guide:

", - "GetImport": "

Returns information for the specified import.

", + "GetImport": "

Returns information about a specific import.

", "GetInsightSelectors": "

Describes the settings for the Insights event selectors that you configured for your trail. GetInsightSelectors shows if CloudTrail Insights event logging is enabled on the trail, and if it is, which insight types are enabled. If you run GetInsightSelectors on a trail that does not have Insights events enabled, the operation throws the exception InsightNotEnabledException

For more information, see Logging CloudTrail Insights Events for Trails in the CloudTrail User Guide.

", "GetQueryResults": "

Gets event data results of a query. You must specify the QueryID value returned by the StartQuery operation, and an ARN for EventDataStore.

", "GetTrail": "

Returns settings information for a specified trail.

", "GetTrailStatus": "

Returns a JSON-formatted list of information about the specified trail. Fields include information on delivery errors, Amazon SNS and Amazon S3 errors, and start and stop logging times for each trail. This operation returns trail status from a single region. To return trail status from all regions, you must call the operation on each region.

", - "ListChannels": "

Returns all CloudTrail channels.

", + "ListChannels": "

Lists the channels in the current account, and their source names. Amazon Web Services services create service-linked channels get information about CloudTrail events on your behalf. For more information about service-linked channels, see Viewing service-linked channels for CloudTrail by using the CLI.

", "ListEventDataStores": "

Returns information about all event data stores in the account, in the current region.

", "ListImportFailures": "

Returns a list of failures for the specified import.

", "ListImports": "

Returns information on all imports, or a select set of imports by ImportStatus or Destination.

", @@ -31,9 +31,9 @@ "PutInsightSelectors": "

Lets you enable Insights event logging by specifying the Insights selectors that you want to enable on an existing trail. You also use PutInsightSelectors to turn off Insights event logging, by passing an empty list of insight types. The valid Insights event types in this release are ApiErrorRateInsight and ApiCallRateInsight.

", "RemoveTags": "

Removes the specified tags from a trail or event data store.

", "RestoreEventDataStore": "

Restores a deleted event data store specified by EventDataStore, which accepts an event data store ARN. You can only restore a deleted event data store within the seven-day wait period after deletion. Restoring an event data store can take several minutes, depending on the size of the event data store.

", - "StartImport": "

Starts an import of logged trail events from a source S3 bucket to a destination event data store.

When you start a new import, the Destinations and ImportSource parameters are required. Before starting a new import, disable any access control lists (ACLs) attached to the source S3 bucket. For more information about disabling ACLs, see Controlling ownership of objects and disabling ACLs for your bucket.

When you retry an import, the ImportID parameter is required.

", + "StartImport": "

Starts an import of logged trail events from a source S3 bucket to a destination event data store. By default, CloudTrail only imports events contained in the S3 bucket's CloudTrail prefix and the prefixes inside the CloudTrail prefix, and does not check prefixes for other Amazon Web Services services. If you want to import CloudTrail events contained in another prefix, you must include the prefix in the S3LocationUri. For more considerations about importing trail events, see Considerations.

When you start a new import, the Destinations and ImportSource parameters are required. Before starting a new import, disable any access control lists (ACLs) attached to the source S3 bucket. For more information about disabling ACLs, see Controlling ownership of objects and disabling ACLs for your bucket.

When you retry an import, the ImportID parameter is required.

", "StartLogging": "

Starts the recording of Amazon Web Services API calls and log file delivery for a trail. For a trail that is enabled in all regions, this operation must be called from the region in which the trail was created. This operation cannot be called on the shadow trails (replicated trails in other regions) of a trail that is enabled in all regions.

", - "StartQuery": "

Starts a CloudTrail Lake query. The required QueryStatement parameter provides your SQL query, enclosed in single quotation marks.

", + "StartQuery": "

Starts a CloudTrail Lake query. The required QueryStatement parameter provides your SQL query, enclosed in single quotation marks. Use the optional DeliveryS3Uri parameter to deliver the query results to an S3 bucket.

", "StopImport": "

Stops a specified import.

", "StopLogging": "

Suspends the recording of Amazon Web Services API calls and log file delivery for the specified trail. Under most circumstances, there is no need to use this action. You can update a trail without stopping it first. This action is the only way to stop recording. For a trail enabled in all regions, this operation must be called from the region in which the trail was created, or an InvalidHomeRegionException will occur. This operation cannot be called on the shadow trails (replicated trails in other regions) of a trail enabled in all regions.

", "UpdateEventDataStore": "

Updates an event data store. The required EventDataStore value is an ARN or the ID portion of the ARN. Other parameters are optional, but at least one optional parameter must be specified, or CloudTrail throws an error. RetentionPeriod is in days, and valid values are integers between 90 and 2557. By default, TerminationProtection is enabled. AdvancedEventSelectors includes or excludes management and data events in your event data store; for more information about AdvancedEventSelectors, see PutEventSelectorsRequest$AdvancedEventSelectors.

", @@ -72,7 +72,7 @@ "PutEventSelectorsRequest$AdvancedEventSelectors": "

Specifies the settings for advanced event selectors. You can add advanced event selectors, and conditions for your advanced event selectors, up to a maximum of 500 values for all conditions and selectors on a trail. You can use either AdvancedEventSelectors or EventSelectors, but not both. If you apply AdvancedEventSelectors to a trail, any existing EventSelectors are overwritten. For more information about advanced event selectors, see Logging data events for trails in the CloudTrail User Guide.

", "PutEventSelectorsResponse$AdvancedEventSelectors": "

Specifies the advanced event selectors configured for your trail.

", "RestoreEventDataStoreResponse$AdvancedEventSelectors": "

The advanced event selectors that were used to select events.

", - "SourceConfig$AdvancedEventSelectors": "

The advanced event selectors configured for the service-linked channel.

", + "SourceConfig$AdvancedEventSelectors": "

The advanced event selectors that are configured for the channel.

", "UpdateEventDataStoreRequest$AdvancedEventSelectors": "

The advanced event selectors used to select events for the event data store. You can configure up to five advanced event selectors for each event data store.

", "UpdateEventDataStoreResponse$AdvancedEventSelectors": "

The advanced event selectors that are applied to the event data store.

" } @@ -113,7 +113,7 @@ "GetTrailStatusResponse$IsLogging": "

Whether the CloudTrail trail is currently logging Amazon Web Services API calls.

", "RestoreEventDataStoreResponse$MultiRegionEnabled": "

Indicates whether the event data store is collecting events from all regions, or only from the region in which the event data store was created.

", "RestoreEventDataStoreResponse$OrganizationEnabled": "

Indicates whether an event data store is collecting logged events for an organization in Organizations.

", - "SourceConfig$ApplyToAllRegions": "

Specifies whether the service-linked channel applies to one region or all regions.

", + "SourceConfig$ApplyToAllRegions": "

Specifies whether the channel applies to a single region or to all regions.

", "Trail$IncludeGlobalServiceEvents": "

Set to True to include Amazon Web Services API calls from Amazon Web Services global services such as IAM. Otherwise, False.

", "Trail$IsMultiRegionTrail": "

Specifies whether the trail exists only in one region or exists in all regions.

", "Trail$LogFileValidationEnabled": "

Specifies whether log file validation is enabled.

", @@ -151,29 +151,29 @@ } }, "Channel": { - "base": "

Contains information about a returned CloudTrail channel.

", + "base": "

Contains information about a returned CloudTrail channel.

", "refs": { "Channels$member": null } }, "ChannelARNInvalidException": { - "base": "

The specified channel ARN is not valid or does not map to a channel in your account.

", + "base": "

This exception is thrown when the specified value of ChannelARN is not valid.

", "refs": { } }, "ChannelArn": { "base": null, "refs": { - "Channel$ChannelArn": "

The Amazon Resource Name (ARN) of the channel.

", - "GetChannelRequest$Channel": "

The Amazon Resource Name (ARN) of the CloudTrail service-linked channel.

", - "GetChannelResponse$ChannelArn": "

The ARN of the CloudTrail service-linked channel.

" + "Channel$ChannelArn": "

The Amazon Resource Name (ARN) of a channel.

", + "GetChannelRequest$Channel": "

The ARN or UUID of a channel.

", + "GetChannelResponse$ChannelArn": "

The ARN of an channel returned by a GetChannel request.

" } }, "ChannelName": { "base": null, "refs": { "Channel$Name": "

The name of the CloudTrail channel. For service-linked channels, the name is aws-service-channel/service-name/custom-suffix where service-name represents the name of the Amazon Web Services service that created the channel and custom-suffix represents the suffix created by the Amazon Web Services service.

", - "GetChannelResponse$Name": "

The name of the CloudTrail service-linked channel. For service-linked channels, the value is aws-service-channel/service-name/custom-suffix where service-name represents the name of the Amazon Web Services service that created the channel and custom-suffix represents the suffix generated by the Amazon Web Services service.

" + "GetChannelResponse$Name": "

The name of the CloudTrail channel. For service-linked channels, the value is aws-service-channel/service-name/custom-suffix where service-name represents the name of the Amazon Web Services service that created the channel and custom-suffix represents the suffix generated by the Amazon Web Services service.

" } }, "ChannelNotFoundException": { @@ -184,7 +184,7 @@ "Channels": { "base": null, "refs": { - "ListChannelsResponse$Channels": "

The list of CloudTrail channels.

" + "ListChannelsResponse$Channels": "

The list of channels in the account.

" } }, "CloudTrailARNInvalidException": { @@ -285,8 +285,8 @@ "QueryStatisticsForDescribeQuery$CreationTime": "

The creation time of the query.

", "RestoreEventDataStoreResponse$CreatedTimestamp": "

The timestamp of an event data store's creation.

", "RestoreEventDataStoreResponse$UpdatedTimestamp": "

The timestamp that shows when an event data store was updated, if applicable. UpdatedTimestamp is always either the same or newer than the time shown in CreatedTimestamp.

", - "StartImportRequest$StartEventTime": "

Use with EndEventTime to bound a StartImport request, and limit imported trail events to only those events logged within a specified time period.

", - "StartImportRequest$EndEventTime": "

Use with StartEventTime to bound a StartImport request, and limit imported trail events to only those events logged within a specified time period.

", + "StartImportRequest$StartEventTime": "

Use with EndEventTime to bound a StartImport request, and limit imported trail events to only those events logged within a specified time period. When you specify a time range, CloudTrail checks the prefix and log file names to verify the names contain a date between the specified StartEventTime and EndEventTime before attempting to import events.

", + "StartImportRequest$EndEventTime": "

Use with StartEventTime to bound a StartImport request, and limit imported trail events to only those events logged within a specified time period. When you specify a time range, CloudTrail checks the prefix and log file names to verify the names contain a date between the specified StartEventTime and EndEventTime before attempting to import events.

", "StartImportResponse$StartEventTime": "

Used with EndEventTime to bound a StartImport request, and limit imported trail events to only those events logged within a specified time period.

", "StartImportResponse$EndEventTime": "

Used with StartEventTime to bound a StartImport request, and limit imported trail events to only those events logged within a specified time period.

", "StartImportResponse$CreatedTimestamp": "

The timestamp for the import's creation.

", @@ -319,6 +319,19 @@ "refs": { } }, + "DeliveryS3Uri": { + "base": null, + "refs": { + "DescribeQueryResponse$DeliveryS3Uri": "

The URI for the S3 bucket where CloudTrail delivered query results, if applicable.

", + "StartQueryRequest$DeliveryS3Uri": "

The URI for the S3 bucket where CloudTrail delivers the query results.

" + } + }, + "DeliveryStatus": { + "base": null, + "refs": { + "DescribeQueryResponse$DeliveryStatus": "

The delivery status.

" + } + }, "DescribeQueryRequest": { "base": null, "refs": { @@ -340,7 +353,7 @@ } }, "Destination": { - "base": "

Contains information about the service where CloudTrail delivers events.

", + "base": "

Contains information about the service where CloudTrail delivers events.

", "refs": { "Destinations$member": null } @@ -348,13 +361,13 @@ "DestinationType": { "base": null, "refs": { - "Destination$Type": "

The type of service. For service-linked channels, the value is AWS_SERVICE.

" + "Destination$Type": "

The type of destination for events arriving from a channel. For service-linked channels, the value is AWS_SERVICE.

" } }, "Destinations": { "base": null, "refs": { - "GetChannelResponse$Destinations": "

The Amazon Web Services service that created the CloudTrail service-linked channel.

" + "GetChannelResponse$Destinations": "

The Amazon Web Services service that created the service-linked channel.

" } }, "ErrorMessage": { @@ -404,7 +417,7 @@ "GetEventDataStoreResponse$EventDataStoreArn": "

The event data store Amazon Resource Number (ARN).

", "GetQueryResultsRequest$EventDataStore": "

The ARN (or ID suffix of the ARN) of the event data store against which the query was run.

", "ImportDestinations$member": null, - "ListImportsRequest$Destination": "

The destination event data store.

", + "ListImportsRequest$Destination": "

The ARN of the destination event data store.

", "ListQueriesRequest$EventDataStore": "

The ARN (or the ID suffix of the ARN) of an event data store on which queries were run.

", "RestoreEventDataStoreRequest$EventDataStore": "

The ARN (or the ID suffix of the ARN) of the event data store that you want to restore.

", "RestoreEventDataStoreResponse$EventDataStoreArn": "

The event data store ARN.

", @@ -569,11 +582,11 @@ "ImportDestinations": { "base": null, "refs": { - "GetImportResponse$Destinations": "

The destination event data store.

", - "ImportsListItem$Destinations": "

The destination event data store.

", - "StartImportRequest$Destinations": "

The destination event data store. Use this parameter for a new import.

", - "StartImportResponse$Destinations": "

The destination event data store.

", - "StopImportResponse$Destinations": "

The destination event data store.

" + "GetImportResponse$Destinations": "

The ARN of the destination event data store.

", + "ImportsListItem$Destinations": "

The ARN of the destination event data store.

", + "StartImportRequest$Destinations": "

The ARN of the destination event data store. Use this parameter for a new import.

", + "StartImportResponse$Destinations": "

The ARN of the destination event data store.

", + "StopImportResponse$Destinations": "

The ARN of the destination event data store.

" } }, "ImportFailureList": { @@ -604,14 +617,14 @@ "refs": { "GetImportResponse$ImportSource": "

The source S3 bucket.

", "StartImportRequest$ImportSource": "

The source S3 bucket for the import. Use this parameter for a new import.

", - "StartImportResponse$ImportSource": "

The source S3 bucket.

", - "StopImportResponse$ImportSource": "

The source S3 bucket.

" + "StartImportResponse$ImportSource": "

The source S3 bucket for the import.

", + "StopImportResponse$ImportSource": "

The source S3 bucket for the import.

" } }, "ImportStatistics": { - "base": "

Provides statistics for the specified ImportID.

", + "base": "

Provides statistics for the specified ImportID. CloudTrail does not update import statistics in real-time. Returned values for parameters such as EventsCompleted may be lower than the actual value, because CloudTrail updates statistics incrementally over the course of the import.

", "refs": { - "GetImportResponse$ImportStatistics": "

Provides statistics for the import.

", + "GetImportResponse$ImportStatistics": "

Provides statistics for the import. CloudTrail does not update import statistics in real-time. Returned values for parameters such as EventsCompleted may be lower than the actual value, because CloudTrail updates statistics incrementally over the course of the import.

", "StopImportResponse$ImportStatistics": "

Returns information on the stopped import.

" } }, @@ -678,7 +691,7 @@ } }, "InsufficientEncryptionPolicyException": { - "base": "

This exception is thrown when the policy on the S3 bucket or KMS key is not sufficient.

", + "base": "

This exception is thrown when the policy on the S3 bucket or KMS key does not have sufficient permissions for the operation.

", "refs": { } }, @@ -721,7 +734,7 @@ } }, "InvalidEventDataStoreCategoryException": { - "base": "

This exception is thrown when the event data store category is not valid for the import.

", + "base": "

This exception is thrown when event categories of specified event data stores are not valid.

", "refs": { } }, @@ -953,7 +966,7 @@ "Location": { "base": null, "refs": { - "Destination$Location": "

The location of the service. For service-linked channels, this is the name of the Amazon Web Services service.

" + "Destination$Location": "

For service-linked channels, the value is the name of the Amazon Web Services service.

" } }, "Long": { @@ -961,8 +974,8 @@ "refs": { "ImportStatistics$PrefixesFound": "

The number of S3 prefixes found for the import.

", "ImportStatistics$PrefixesCompleted": "

The number of S3 prefixes that completed import.

", - "ImportStatistics$FilesCompleted": "

The number of files that completed import.

", - "ImportStatistics$EventsCompleted": "

The number of trail events imported.

", + "ImportStatistics$FilesCompleted": "

The number of log files that completed import.

", + "ImportStatistics$EventsCompleted": "

The number of trail events imported into the event data store.

", "ImportStatistics$FailedEntries": "

The number of failed entries.

", "QueryStatistics$BytesScanned": "

The total bytes that the query scanned in the event data store. This value matches the number of bytes for which your account is billed for the query, unless the query is still running.

", "QueryStatisticsForDescribeQuery$EventsMatched": "

The number of events that matched a query.

", @@ -1069,8 +1082,8 @@ "refs": { "GetQueryResultsRequest$NextToken": "

A token you can use to get the next page of query results.

", "GetQueryResultsResponse$NextToken": "

A token you can use to get the next page of query results.

", - "ListChannelsRequest$NextToken": "

A token you can use to get the next page of results.

", - "ListChannelsResponse$NextToken": "

A token used to get the next page of results.

", + "ListChannelsRequest$NextToken": "

The token to use to get the next page of results after a previous API call. This token must be passed in with the same parameters that were specified in the original call. For example, if the original call specified an AttributeKey of 'Username' with a value of 'root', the call with NextToken should include those same parameters.

", + "ListChannelsResponse$NextToken": "

The token to use to get the next page of results after a previous API call.

", "ListEventDataStoresRequest$NextToken": "

A token you can use to get the next page of event data store results.

", "ListEventDataStoresResponse$NextToken": "

A token you can use to get the next page of results.

", "ListImportFailuresRequest$NextToken": "

A token you can use to get the next page of import failures.

", @@ -1293,13 +1306,13 @@ "Source": { "base": null, "refs": { - "GetChannelResponse$Source": "

The trail or event data store for the CloudTrail service-linked channel.

" + "GetChannelResponse$Source": "

The event source for the CloudTrail channel.

" } }, "SourceConfig": { - "base": "

Contains configuration information about the service-linked channel.

", + "base": "

Contains configuration information about the channel.

", "refs": { - "GetChannelResponse$SourceConfig": "

Provides information about the advanced event selectors configured for the service-linked channel, and whether the service-linked channel applies to all regions or one region.

" + "GetChannelResponse$SourceConfig": "

Provides information about the advanced event selectors configured for the channel, and whether the channel applies to all regions or a single region.

" } }, "StartImportRequest": { @@ -1362,7 +1375,7 @@ "CreateTrailRequest$SnsTopicName": "

Specifies the name of the Amazon SNS topic defined for notification of log file delivery. The maximum length is 256 characters.

", "CreateTrailRequest$CloudWatchLogsLogGroupArn": "

Specifies a log group name using an Amazon Resource Name (ARN), a unique identifier that represents the log group to which CloudTrail logs will be delivered. Not required unless you specify CloudWatchLogsRoleArn.

", "CreateTrailRequest$CloudWatchLogsRoleArn": "

Specifies the role for the CloudWatch Logs endpoint to assume to write to a user's log group.

", - "CreateTrailRequest$KmsKeyId": "

Specifies the KMS key ID to use to encrypt the logs delivered by CloudTrail. The value can be an alias name prefixed by \"alias/\", a fully specified ARN to an alias, a fully specified ARN to a key, or a globally unique identifier.

CloudTrail also supports KMS multi-Region keys. For more information about multi-Region keys, see Using multi-Region keys in the Key Management Service Developer Guide.

Examples:

", + "CreateTrailRequest$KmsKeyId": "

Specifies the KMS key ID to use to encrypt the logs delivered by CloudTrail. The value can be an alias name prefixed by alias/, a fully specified ARN to an alias, a fully specified ARN to a key, or a globally unique identifier.

CloudTrail also supports KMS multi-Region keys. For more information about multi-Region keys, see Using multi-Region keys in the Key Management Service Developer Guide.

Examples:

", "CreateTrailResponse$Name": "

Specifies the name of the trail.

", "CreateTrailResponse$S3BucketName": "

Specifies the name of the Amazon S3 bucket designated for publishing log files.

", "CreateTrailResponse$S3KeyPrefix": "

Specifies the Amazon S3 key prefix that comes after the name of the bucket you have designated for log file delivery. For more information, see Finding Your CloudTrail Log Files.

", @@ -1371,8 +1384,8 @@ "CreateTrailResponse$TrailARN": "

Specifies the ARN of the trail that was created. The format of a trail ARN is:

arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail

", "CreateTrailResponse$CloudWatchLogsLogGroupArn": "

Specifies the Amazon Resource Name (ARN) of the log group to which CloudTrail logs will be delivered.

", "CreateTrailResponse$CloudWatchLogsRoleArn": "

Specifies the role for the CloudWatch Logs endpoint to assume to write to a user's log group.

", - "CreateTrailResponse$KmsKeyId": "

Specifies the KMS key ID that encrypts the logs delivered by CloudTrail. The value is a fully specified ARN to a KMS key in the following format.

arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012

", - "DataResource$Type": "

The resource type in which you want to log data events. You can specify the following basic event selector resource types:

The following resource types are also availble through advanced event selectors. Basic event selector resource types are valid in advanced event selectors, but advanced event selector resource types are not valid in basic event selectors. For more information, see AdvancedFieldSelector$Field.

", + "CreateTrailResponse$KmsKeyId": "

Specifies the KMS key ID that encrypts the events delivered by CloudTrail. The value is a fully specified ARN to a KMS key in the following format.

arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012

", + "DataResource$Type": "

The resource type in which you want to log data events. You can specify the following basic event selector resource types:

The following resource types are also available through advanced event selectors. Basic event selector resource types are valid in advanced event selectors, but advanced event selector resource types are not valid in basic event selectors. For more information, see AdvancedFieldSelector$Field.

", "DataResourceValues$member": null, "DeleteTrailRequest$Name": "

Specifies the name or the CloudTrail ARN of the trail to be deleted. The following is the format of a trail ARN. arn:aws:cloudtrail:us-east-2:123456789012:trail/MyTrail

", "Event$EventId": "

The CloudTrail ID of the event returned.

", diff --git a/models/apis/cloudtrail/2013-11-01/endpoint-rule-set-1.json b/models/apis/cloudtrail/2013-11-01/endpoint-rule-set-1.json new file mode 100644 index 0000000000..aa60d3ae2b --- /dev/null +++ b/models/apis/cloudtrail/2013-11-01/endpoint-rule-set-1.json @@ -0,0 +1,353 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudtrail-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-west-1" + ] + } + ], + "endpoint": { + "url": "https://cloudtrail.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-east-1" + ] + } + ], + "endpoint": { + "url": "https://cloudtrail.us-gov-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudtrail-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://cloudtrail.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://cloudtrail.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/models/apis/cloudtrail/2013-11-01/endpoint-tests-1.json b/models/apis/cloudtrail/2013-11-01/endpoint-tests-1.json new file mode 100644 index 0000000000..650c2a6c64 --- /dev/null +++ b/models/apis/cloudtrail/2013-11-01/endpoint-tests-1.json @@ -0,0 +1,1799 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-4", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-4", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-4", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-4", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://cloudtrail.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/config/2014-11-12/api-2.json b/models/apis/config/2014-11-12/api-2.json index 4c26892de1..bab64a7f19 100644 --- a/models/apis/config/2014-11-12/api-2.json +++ b/models/apis/config/2014-11-12/api-2.json @@ -4594,7 +4594,27 @@ "AWS::GlobalAccelerator::Listener", "AWS::EC2::TransitGatewayAttachment", "AWS::EC2::TransitGatewayRouteTable", - "AWS::DMS::Certificate" + "AWS::DMS::Certificate", + "AWS::AppConfig::Application", + "AWS::AppSync::GraphQLApi", + "AWS::DataSync::LocationSMB", + "AWS::DataSync::LocationFSxLustre", + "AWS::DataSync::LocationS3", + "AWS::DataSync::LocationEFS", + "AWS::DataSync::Task", + "AWS::DataSync::LocationNFS", + "AWS::EC2::NetworkInsightsAccessScopeAnalysis", + "AWS::EKS::FargateProfile", + "AWS::Glue::Job", + "AWS::GuardDuty::ThreatIntelSet", + "AWS::GuardDuty::IPSet", + "AWS::SageMaker::Workteam", + "AWS::SageMaker::NotebookInstanceLifecycleConfig", + "AWS::ServiceDiscovery::Service", + "AWS::ServiceDiscovery::PublicDnsNamespace", + "AWS::SES::ContactList", + "AWS::SES::ConfigurationSet", + "AWS::Route53::HostedZone" ] }, "ResourceTypeList":{ diff --git a/models/apis/config/2014-11-12/docs-2.json b/models/apis/config/2014-11-12/docs-2.json index a8d7ee33fa..d9b377e76c 100644 --- a/models/apis/config/2014-11-12/docs-2.json +++ b/models/apis/config/2014-11-12/docs-2.json @@ -11,8 +11,8 @@ "DeleteConformancePack": "

Deletes the specified conformance pack and all the Config rules, remediation actions, and all evaluation results within that conformance pack.

Config sets the conformance pack to DELETE_IN_PROGRESS until the deletion is complete. You cannot update a conformance pack while it is in this state.

", "DeleteDeliveryChannel": "

Deletes the delivery channel.

Before you can delete the delivery channel, you must stop the configuration recorder by using the StopConfigurationRecorder action.

", "DeleteEvaluationResults": "

Deletes the evaluation results for the specified Config rule. You can specify one Config rule per request. After you delete the evaluation results, you can call the StartConfigRulesEvaluation API to start evaluating your Amazon Web Services resources against the rule.

", - "DeleteOrganizationConfigRule": "

Deletes the specified organization Config rule and all of its evaluation results from all member accounts in that organization.

Only a master account and a delegated administrator account can delete an organization Config rule. When calling this API with a delegated administrator, you must ensure Organizations ListDelegatedAdministrator permissions are added.

Config sets the state of a rule to DELETE_IN_PROGRESS until the deletion is complete. You cannot update a rule while it is in this state.

", - "DeleteOrganizationConformancePack": "

Deletes the specified organization conformance pack and all of the Config rules and remediation actions from all member accounts in that organization.

Only a master account or a delegated administrator account can delete an organization conformance pack. When calling this API with a delegated administrator, you must ensure Organizations ListDelegatedAdministrator permissions are added.

Config sets the state of a conformance pack to DELETE_IN_PROGRESS until the deletion is complete. You cannot update a conformance pack while it is in this state.

", + "DeleteOrganizationConfigRule": "

Deletes the specified organization Config rule and all of its evaluation results from all member accounts in that organization.

Only a management account and a delegated administrator account can delete an organization Config rule. When calling this API with a delegated administrator, you must ensure Organizations ListDelegatedAdministrator permissions are added.

Config sets the state of a rule to DELETE_IN_PROGRESS until the deletion is complete. You cannot update a rule while it is in this state.

", + "DeleteOrganizationConformancePack": "

Deletes the specified organization conformance pack and all of the Config rules and remediation actions from all member accounts in that organization.

Only a management account or a delegated administrator account can delete an organization conformance pack. When calling this API with a delegated administrator, you must ensure Organizations ListDelegatedAdministrator permissions are added.

Config sets the state of a conformance pack to DELETE_IN_PROGRESS until the deletion is complete. You cannot update a conformance pack while it is in this state.

", "DeletePendingAggregationRequest": "

Deletes pending authorization requests for a specified aggregator account in a specified region.

", "DeleteRemediationConfiguration": "

Deletes the remediation configuration.

", "DeleteRemediationExceptions": "

Deletes one or more remediation exceptions mentioned in the resource keys.

Config generates a remediation exception when a problem occurs executing a remediation action to a specific resource. Remediation exceptions blocks auto-remediation until the exception is cleared.

", @@ -64,7 +64,7 @@ "GetResourceConfigHistory": "

Returns a list of ConfigurationItems for the specified resource. The list contains details about each state of the resource during the specified time interval. If you specified a retention period to retain your ConfigurationItems between a minimum of 30 days and a maximum of 7 years (2557 days), Config returns the ConfigurationItems for the specified retention period.

The response is paginated. By default, Config returns a limit of 10 configuration items per page. You can customize this number with the limit parameter. The response includes a nextToken string. To get the next page of results, run the request again and specify the string for the nextToken parameter.

Each call to the API is limited to span a duration of seven days. It is likely that the number of records returned is smaller than the specified limit. In such cases, you can make another call, using the nextToken.

", "GetStoredQuery": "

Returns the details of a specific stored query.

", "ListAggregateDiscoveredResources": "

Accepts a resource type and returns a list of resource identifiers that are aggregated for a specific resource type across accounts and regions. A resource identifier includes the resource type, ID, (if available) the custom resource name, source account, and source region. You can narrow the results to include only resources that have specific resource IDs, or a resource name, or source account ID, or source region.

For example, if the input consists of accountID 12345678910 and the region is us-east-1 for resource type AWS::EC2::Instance then the API returns all the EC2 instance identifiers of accountID 12345678910 and region us-east-1.

", - "ListConformancePackComplianceScores": "

Returns a list of conformance pack compliance scores. A compliance score is the percentage of the number of compliant rule-resource combinations in a conformance pack compared to the number of total possible rule-resource combinations in the conformance pack. This metric provides you with a high-level view of the compliance state of your conformance packs, and can be used to identify, investigate, and understand the level of compliance in your conformance packs.

Conformance packs with no evaluation results will have a compliance score of INSUFFICIENT_DATA.

", + "ListConformancePackComplianceScores": "

Returns a list of conformance pack compliance scores. A compliance score is the percentage of the number of compliant rule-resource combinations in a conformance pack compared to the number of total possible rule-resource combinations in the conformance pack. This metric provides you with a high-level view of the compliance state of your conformance packs. You can use it to identify, investigate, and understand the level of compliance in your conformance packs.

Conformance packs with no evaluation results will have a compliance score of INSUFFICIENT_DATA.

", "ListDiscoveredResources": "

Accepts a resource type and returns a list of resource identifiers for the resources of that type. A resource identifier includes the resource type, ID, and (if available) the custom resource name. The results consist of resources that Config has discovered, including those that Config is not currently recording. You can narrow the results to include only resources that have specific resource IDs or a resource name.

You can specify either resource IDs or a resource name, but not both, in the same request.

The response is paginated. By default, Config lists 100 resource identifiers on each page. You can customize this number with the limit parameter. The response includes a nextToken string. To get the next page of results, run the request again and specify the string for the nextToken parameter.

", "ListStoredQueries": "

Lists the stored queries for a single Amazon Web Services account and a single Amazon Web Services Region. The default is 100.

", "ListTagsForResource": "

List the tags for Config resource.

", @@ -72,12 +72,12 @@ "PutConfigRule": "

Adds or updates an Config rule to evaluate if your Amazon Web Services resources comply with your desired configurations. For information on how many Config rules you can have per account, see Service Limits in the Config Developer Guide.

There are two types of rules: Config Custom Rules and Config Managed Rules. You can use PutConfigRule to create both Config custom rules and Config managed rules.

Custom rules are rules that you can create using either Guard or Lambda functions. Guard (Guard GitHub Repository) is a policy-as-code language that allows you to write policies that are enforced by Config Custom Policy rules. Lambda uses custom code that you upload to evaluate a custom rule. If you are adding a new Custom Lambda rule, you first need to create an Lambda function that the rule invokes to evaluate your resources. When you use PutConfigRule to add a Custom Lambda rule to Config, you must specify the Amazon Resource Name (ARN) that Lambda assigns to the function. You specify the ARN in the SourceIdentifier key. This key is part of the Source object, which is part of the ConfigRule object.

Managed rules are predefined, customizable rules created by Config. For a list of managed rules, see List of Config Managed Rules. If you are adding an Config managed rule, you must specify the rule's identifier for the SourceIdentifier key.

For any new rule that you add, specify the ConfigRuleName in the ConfigRule object. Do not specify the ConfigRuleArn or the ConfigRuleId. These values are generated by Config for new rules.

If you are updating a rule that you added previously, you can specify the rule by ConfigRuleName, ConfigRuleId, or ConfigRuleArn in the ConfigRule data type that you use in this request.

For more information about developing and using Config rules, see Evaluating Amazon Web Services resource Configurations with Config in the Config Developer Guide.

", "PutConfigurationAggregator": "

Creates and updates the configuration aggregator with the selected source accounts and regions. The source account can be individual account(s) or an organization.

accountIds that are passed will be replaced with existing accounts. If you want to add additional accounts into the aggregator, call DescribeConfigurationAggregators to get the previous accounts and then append new ones.

Config should be enabled in source accounts and regions you want to aggregate.

If your source type is an organization, you must be signed in to the management account or a registered delegated administrator and all the features must be enabled in your organization. If the caller is a management account, Config calls EnableAwsServiceAccess API to enable integration between Config and Organizations. If the caller is a registered delegated administrator, Config calls ListDelegatedAdministrators API to verify whether the caller is a valid delegated administrator.

To register a delegated administrator, see Register a Delegated Administrator in the Config developer guide.

", "PutConfigurationRecorder": "

Creates a new configuration recorder to record the selected resource configurations.

You can use this action to change the role roleARN or the recordingGroup of an existing recorder. To change the role, call the action on the existing configuration recorder and specify a role.

Currently, you can specify only one configuration recorder per region in your account.

If ConfigurationRecorder does not have the recordingGroup parameter specified, the default is to record all supported resource types.

", - "PutConformancePack": "

Creates or updates a conformance pack. A conformance pack is a collection of Config rules that can be easily deployed in an account and a region and across Amazon Web Services Organization. For information on how many conformance packs you can have per account, see Service Limits in the Config Developer Guide.

This API creates a service-linked role AWSServiceRoleForConfigConforms in your account. The service-linked role is created only when the role does not exist in your account.

You must specify one and only one of theTemplateS3Uri, TemplateBody or TemplateSSMDocumentDetails parameters.

", + "PutConformancePack": "

Creates or updates a conformance pack. A conformance pack is a collection of Config rules that can be easily deployed in an account and a region and across an organization. For information on how many conformance packs you can have per account, see Service Limits in the Config Developer Guide.

This API creates a service-linked role AWSServiceRoleForConfigConforms in your account. The service-linked role is created only when the role does not exist in your account.

You must specify only one of the follow parameters: TemplateS3Uri, TemplateBody or TemplateSSMDocumentDetails.

", "PutDeliveryChannel": "

Creates a delivery channel object to deliver configuration information to an Amazon S3 bucket and Amazon SNS topic.

Before you can create a delivery channel, you must create a configuration recorder.

You can use this action to change the Amazon S3 bucket or an Amazon SNS topic of the existing delivery channel. To change the Amazon S3 bucket or an Amazon SNS topic, call this action and specify the changed values for the S3 bucket and the SNS topic. If you specify a different value for either the S3 bucket or the SNS topic, this action will keep the existing value for the parameter that is not changed.

You can have only one delivery channel per region in your account.

", "PutEvaluations": "

Used by an Lambda function to deliver evaluation results to Config. This action is required in every Lambda function that is invoked by an Config rule.

", "PutExternalEvaluation": "

Add or updates the evaluations for process checks. This API checks if the rule is a process check when the name of the Config rule is provided.

", - "PutOrganizationConfigRule": "

Adds or updates an Config rule for your entire organization to evaluate if your Amazon Web Services resources comply with your desired configurations. For information on how many organization Config rules you can have per account, see Service Limits in the Config Developer Guide.

Only a master account and a delegated administrator can create or update an organization Config rule. When calling this API with a delegated administrator, you must ensure Organizations ListDelegatedAdministrator permissions are added. An organization can have up to 3 delegated administrators.

This API enables organization service access through the EnableAWSServiceAccess action and creates a service-linked role AWSServiceRoleForConfigMultiAccountSetup in the master or delegated administrator account of your organization. The service-linked role is created only when the role does not exist in the caller account. Config verifies the existence of role with GetRole action.

To use this API with delegated administrator, register a delegated administrator by calling Amazon Web Services Organization register-delegated-administrator for config-multiaccountsetup.amazonaws.com.

There are two types of rules: Config Custom Rules and Config Managed Rules. You can use PutOrganizationConfigRule to create both Config custom rules and Config managed rules.

Custom rules are rules that you can create using either Guard or Lambda functions. Guard (Guard GitHub Repository) is a policy-as-code language that allows you to write policies that are enforced by Config Custom Policy rules. Lambda uses custom code that you upload to evaluate a custom rule. If you are adding a new Custom Lambda rule, you first need to create an Lambda function in the master account or a delegated administrator that the rule invokes to evaluate your resources. You also need to create an IAM role in the managed account that can be assumed by the Lambda function. When you use PutOrganizationConfigRule to add a Custom Lambda rule to Config, you must specify the Amazon Resource Name (ARN) that Lambda assigns to the function.

Managed rules are predefined, customizable rules created by Config. For a list of managed rules, see List of Config Managed Rules. If you are adding an Config managed rule, you must specify the rule's identifier for the RuleIdentifier key.

Prerequisite: Ensure you call EnableAllFeatures API to enable all features in an organization.

Make sure to specify one of either OrganizationCustomPolicyRuleMetadata for Custom Policy rules, OrganizationCustomRuleMetadata for Custom Lambda rules, or OrganizationManagedRuleMetadata for managed rules.

", - "PutOrganizationConformancePack": "

Deploys conformance packs across member accounts in an Amazon Web Services Organization. For information on how many organization conformance packs and how many Config rules you can have per account, see Service Limits in the Config Developer Guide.

Only a master account and a delegated administrator can call this API. When calling this API with a delegated administrator, you must ensure Organizations ListDelegatedAdministrator permissions are added. An organization can have up to 3 delegated administrators.

This API enables organization service access for config-multiaccountsetup.amazonaws.com through the EnableAWSServiceAccess action and creates a service-linked role AWSServiceRoleForConfigMultiAccountSetup in the master or delegated administrator account of your organization. The service-linked role is created only when the role does not exist in the caller account. To use this API with delegated administrator, register a delegated administrator by calling Amazon Web Services Organization register-delegate-admin for config-multiaccountsetup.amazonaws.com.

Prerequisite: Ensure you call EnableAllFeatures API to enable all features in an organization.

You must specify either the TemplateS3Uri or the TemplateBody parameter, but not both. If you provide both Config uses the TemplateS3Uri parameter and ignores the TemplateBody parameter.

Config sets the state of a conformance pack to CREATE_IN_PROGRESS and UPDATE_IN_PROGRESS until the conformance pack is created or updated. You cannot update a conformance pack while it is in this state.

", + "PutOrganizationConfigRule": "

Adds or updates an Config rule for your entire organization to evaluate if your Amazon Web Services resources comply with your desired configurations. For information on how many organization Config rules you can have per account, see Service Limits in the Config Developer Guide.

Only a management account and a delegated administrator can create or update an organization Config rule. When calling this API with a delegated administrator, you must ensure Organizations ListDelegatedAdministrator permissions are added. An organization can have up to 3 delegated administrators.

This API enables organization service access through the EnableAWSServiceAccess action and creates a service-linked role AWSServiceRoleForConfigMultiAccountSetup in the management or delegated administrator account of your organization. The service-linked role is created only when the role does not exist in the caller account. Config verifies the existence of role with GetRole action.

To use this API with delegated administrator, register a delegated administrator by calling Amazon Web Services Organization register-delegated-administrator for config-multiaccountsetup.amazonaws.com.

There are two types of rules: Config Custom Rules and Config Managed Rules. You can use PutOrganizationConfigRule to create both Config custom rules and Config managed rules.

Custom rules are rules that you can create using either Guard or Lambda functions. Guard (Guard GitHub Repository) is a policy-as-code language that allows you to write policies that are enforced by Config Custom Policy rules. Lambda uses custom code that you upload to evaluate a custom rule. If you are adding a new Custom Lambda rule, you first need to create an Lambda function in the management account or a delegated administrator that the rule invokes to evaluate your resources. You also need to create an IAM role in the managed account that can be assumed by the Lambda function. When you use PutOrganizationConfigRule to add a Custom Lambda rule to Config, you must specify the Amazon Resource Name (ARN) that Lambda assigns to the function.

Managed rules are predefined, customizable rules created by Config. For a list of managed rules, see List of Config Managed Rules. If you are adding an Config managed rule, you must specify the rule's identifier for the RuleIdentifier key.

Prerequisite: Ensure you call EnableAllFeatures API to enable all features in an organization.

Make sure to specify one of either OrganizationCustomPolicyRuleMetadata for Custom Policy rules, OrganizationCustomRuleMetadata for Custom Lambda rules, or OrganizationManagedRuleMetadata for managed rules.

", + "PutOrganizationConformancePack": "

Deploys conformance packs across member accounts in an Amazon Web Services Organization. For information on how many organization conformance packs and how many Config rules you can have per account, see Service Limits in the Config Developer Guide.

Only a management account and a delegated administrator can call this API. When calling this API with a delegated administrator, you must ensure Organizations ListDelegatedAdministrator permissions are added. An organization can have up to 3 delegated administrators.

This API enables organization service access for config-multiaccountsetup.amazonaws.com through the EnableAWSServiceAccess action and creates a service-linked role AWSServiceRoleForConfigMultiAccountSetup in the management or delegated administrator account of your organization. The service-linked role is created only when the role does not exist in the caller account. To use this API with delegated administrator, register a delegated administrator by calling Amazon Web Services Organization register-delegate-admin for config-multiaccountsetup.amazonaws.com.

Prerequisite: Ensure you call EnableAllFeatures API to enable all features in an organization.

You must specify either the TemplateS3Uri or the TemplateBody parameter, but not both. If you provide both Config uses the TemplateS3Uri parameter and ignores the TemplateBody parameter.

Config sets the state of a conformance pack to CREATE_IN_PROGRESS and UPDATE_IN_PROGRESS until the conformance pack is created or updated. You cannot update a conformance pack while it is in this state.

", "PutRemediationConfigurations": "

Adds or updates the remediation configuration with a specific Config rule with the selected target or action. The API creates the RemediationConfiguration object for the Config rule. The Config rule must already exist for you to add a remediation configuration. The target (SSM document) must exist and have permissions to use the target.

If you make backward incompatible changes to the SSM document, you must call this again to ensure the remediations can run.

This API does not support adding remediation configurations for service-linked Config Rules such as Organization Config rules, the rules deployed by conformance packs, and rules deployed by Amazon Web Services Security Hub.

For manual remediation configuration, you need to provide a value for automationAssumeRole or use a value in the assumeRolefield to remediate your resources. The SSM automation document can use either as long as it maps to a valid parameter.

However, for automatic remediation configuration, the only valid assumeRole field value is AutomationAssumeRole and you need to provide a value for AutomationAssumeRole to remediate your resources.

", "PutRemediationExceptions": "

A remediation exception is when a specific resource is no longer considered for auto-remediation. This API adds a new exception or updates an existing exception for a specific resource with a specific Config rule.

Config generates a remediation exception when a problem occurs executing a remediation action to a specific resource. Remediation exceptions blocks auto-remediation until the exception is cleared.

", "PutResourceConfig": "

Records the configuration state for the resource provided in the request. The configuration state of a resource is represented in Config as Configuration Items. Once this API records the configuration item, you can retrieve the list of configuration items for the custom resource type using existing Config APIs.

The custom resource type must be registered with CloudFormation. This API accepts the configuration item registered with CloudFormation.

When you call this API, Config only stores configuration state of the resource provided in the request. This API does not change or remediate the configuration of the resource.

Write-only schema properites are not recorded as part of the published configuration item.

", @@ -778,7 +778,7 @@ } }, "ConformancePackComplianceScore": { - "base": "

A compliance score is the percentage of the number of compliant rule-resource combinations in a conformance pack compared to the number of total possible rule-resource combinations in the conformance pack. This metric provides you with a high-level view of the compliance state of your conformance packs, and can be used to identify, investigate, and understand the level of compliance in your conformance packs.

", + "base": "

A compliance score is the percentage of the number of compliant rule-resource combinations in a conformance pack compared to the number of total possible rule-resource combinations in the conformance pack. This metric provides you with a high-level view of the compliance state of your conformance packs. You can use it to identify, investigate, and understand the level of compliance in your conformance packs.

", "refs": { "ConformancePackComplianceScores$member": null } @@ -954,7 +954,7 @@ } }, "ConformancePackTemplateValidationException": { - "base": "

You have specified a template that is not valid or supported.

", + "base": "

You have specified a template that is invalid or supported.

", "refs": { } }, @@ -1823,7 +1823,7 @@ } }, "InsufficientPermissionsException": { - "base": "

Indicates one of the following errors:

", + "base": "

Indicates one of the following errors:

", "refs": { } }, @@ -1844,7 +1844,7 @@ } }, "InvalidDeliveryChannelNameException": { - "base": "

The specified delivery channel name is not valid.

", + "base": "

The specified delivery channel name is invalid.

", "refs": { } }, @@ -1884,12 +1884,12 @@ } }, "InvalidS3KeyPrefixException": { - "base": "

The specified Amazon S3 key prefix is not valid.

", + "base": "

The specified Amazon S3 key prefix is invalid.

", "refs": { } }, "InvalidS3KmsKeyArnException": { - "base": "

The specified Amazon KMS Key ARN is not valid.

", + "base": "

The specified Amazon KMS Key ARN is invalid.

", "refs": { } }, @@ -1899,7 +1899,7 @@ } }, "InvalidTimeRangeException": { - "base": "

The specified time range is not valid. The earlier time is not chronologically before the later time.

", + "base": "

The specified time range is invalid. The earlier time is not chronologically before the later time.

", "refs": { } }, @@ -2009,7 +2009,7 @@ } }, "MaxActiveResourcesExceededException": { - "base": "

You have reached the limit (100,000) of active custom resource types in your account. Delete unused resources using DeleteResourceConfig.

", + "base": "

You have reached the limit of active custom resource types in your account. There is a limit of 100,000. Delete unused resources using DeleteResourceConfig .

", "refs": { } }, @@ -2024,7 +2024,7 @@ } }, "MaxNumberOfConformancePacksExceededException": { - "base": "

You have reached the limit (6) of the number of conformance packs in an account (6 conformance pack with 25 Config rules per pack).

", + "base": "

You have reached the limit of the number of conformance packs you can create in an account. For more information, see Service Limits in the Config Developer Guide.

", "refs": { } }, @@ -2034,12 +2034,12 @@ } }, "MaxNumberOfOrganizationConfigRulesExceededException": { - "base": "

You have reached the limit of the number of organization Config rules you can create.

", + "base": "

You have reached the limit of the number of organization Config rules you can create. For more information, see see Service Limits in the Config Developer Guide.

", "refs": { } }, "MaxNumberOfOrganizationConformancePacksExceededException": { - "base": "

You have reached the limit (6) of the number of organization conformance packs in an account (6 conformance pack with 25 Config rules per pack per account).

", + "base": "

You have reached the limit of the number of organization conformance packs you can create in an account. For more information, see Service Limits in the Config Developer Guide.

", "refs": { } }, @@ -2063,8 +2063,8 @@ "MemberAccountRuleStatus": { "base": null, "refs": { - "MemberAccountStatus$MemberAccountRuleStatus": "

Indicates deployment status for Config rule in the member account. When master account calls PutOrganizationConfigRule action for the first time, Config rule status is created in the member account. When master account calls PutOrganizationConfigRule action for the second time, Config rule status is updated in the member account. Config rule status is deleted when the master account deletes OrganizationConfigRule and disables service access for config-multiaccountsetup.amazonaws.com.

Config sets the state of the rule to:

", - "StatusDetailFilters$MemberAccountRuleStatus": "

Indicates deployment status for Config rule in the member account. When master account calls PutOrganizationConfigRule action for the first time, Config rule status is created in the member account. When master account calls PutOrganizationConfigRule action for the second time, Config rule status is updated in the member account. Config rule status is deleted when the master account deletes OrganizationConfigRule and disables service access for config-multiaccountsetup.amazonaws.com.

Config sets the state of the rule to:

" + "MemberAccountStatus$MemberAccountRuleStatus": "

Indicates deployment status for Config rule in the member account. When management account calls PutOrganizationConfigRule action for the first time, Config rule status is created in the member account. When management account calls PutOrganizationConfigRule action for the second time, Config rule status is updated in the member account. Config rule status is deleted when the management account deletes OrganizationConfigRule and disables service access for config-multiaccountsetup.amazonaws.com.

Config sets the state of the rule to:

", + "StatusDetailFilters$MemberAccountRuleStatus": "

Indicates deployment status for Config rule in the member account. When management account calls PutOrganizationConfigRule action for the first time, Config rule status is created in the member account. When management account calls PutOrganizationConfigRule action for the second time, Config rule status is updated in the member account. Config rule status is deleted when the management account deletes OrganizationConfigRule and disables service access for config-multiaccountsetup.amazonaws.com.

Config sets the state of the rule to:

" } }, "MemberAccountStatus": { @@ -2160,7 +2160,7 @@ } }, "NoSuchConfigRuleException": { - "base": "

The Config rule in the request is not valid. Verify that the rule is an Config Custom Policy rule, that the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying again.

", + "base": "

The Config rule in the request is invalid. Verify that the rule is an Config Custom Policy rule, that the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying again.

", "refs": { } }, @@ -2190,7 +2190,7 @@ } }, "NoSuchOrganizationConfigRuleException": { - "base": "

The Config rule in the request is not valid. Verify that the rule is an organization Config Custom Policy rule, that the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying again.

", + "base": "

The Config rule in the request is invalid. Verify that the rule is an organization Config Custom Policy rule, that the rule name is correct, and that valid Amazon Resouce Names (ARNs) are used before trying again.

", "refs": { } }, @@ -2222,7 +2222,7 @@ } }, "OrganizationAccessDeniedException": { - "base": "

For PutConfigurationAggregator API, you can see this exception for the following reasons:

For all OrganizationConfigRule and OrganizationConformancePack APIs, Config throws an exception if APIs are called from member accounts. All APIs must be called from organization master account.

", + "base": "

For PutConfigurationAggregator API, you can see this exception for the following reasons:

For all OrganizationConfigRule and OrganizationConformancePack APIs, Config throws an exception if APIs are called from member accounts. All APIs must be called from organization management account.

", "refs": { } }, @@ -2360,7 +2360,7 @@ } }, "OrganizationConformancePackTemplateValidationException": { - "base": "

You have specified a template that is not valid or supported.

", + "base": "

You have specified a template that is invalid or supported.

", "refs": { } }, @@ -2399,8 +2399,8 @@ "OrganizationResourceDetailedStatus": { "base": null, "refs": { - "OrganizationConformancePackDetailedStatus$Status": "

Indicates deployment status for conformance pack in a member account. When master account calls PutOrganizationConformancePack action for the first time, conformance pack status is created in the member account. When master account calls PutOrganizationConformancePack action for the second time, conformance pack status is updated in the member account. Conformance pack status is deleted when the master account deletes OrganizationConformancePack and disables service access for config-multiaccountsetup.amazonaws.com.

Config sets the state of the conformance pack to:

", - "OrganizationResourceDetailedStatusFilters$Status": "

Indicates deployment status for conformance pack in a member account. When master account calls PutOrganizationConformancePack action for the first time, conformance pack status is created in the member account. When master account calls PutOrganizationConformancePack action for the second time, conformance pack status is updated in the member account. Conformance pack status is deleted when the master account deletes OrganizationConformancePack and disables service access for config-multiaccountsetup.amazonaws.com.

Config sets the state of the conformance pack to:

" + "OrganizationConformancePackDetailedStatus$Status": "

Indicates deployment status for conformance pack in a member account. When management account calls PutOrganizationConformancePack action for the first time, conformance pack status is created in the member account. When management account calls PutOrganizationConformancePack action for the second time, conformance pack status is updated in the member account. Conformance pack status is deleted when the management account deletes OrganizationConformancePack and disables service access for config-multiaccountsetup.amazonaws.com.

Config sets the state of the conformance pack to:

", + "OrganizationResourceDetailedStatusFilters$Status": "

Indicates deployment status for conformance pack in a member account. When management account calls PutOrganizationConformancePack action for the first time, conformance pack status is created in the member account. When management account calls PutOrganizationConformancePack action for the second time, conformance pack status is updated in the member account. Conformance pack status is deleted when the management account deletes OrganizationConformancePack and disables service access for config-multiaccountsetup.amazonaws.com.

Config sets the state of the conformance pack to:

" } }, "OrganizationResourceDetailedStatusFilters": { @@ -2412,13 +2412,13 @@ "OrganizationResourceStatus": { "base": null, "refs": { - "OrganizationConformancePackStatus$Status": "

Indicates deployment status of an organization conformance pack. When master account calls PutOrganizationConformancePack for the first time, conformance pack status is created in all the member accounts. When master account calls PutOrganizationConformancePack for the second time, conformance pack status is updated in all the member accounts. Additionally, conformance pack status is updated when one or more member accounts join or leave an organization. Conformance pack status is deleted when the master account deletes OrganizationConformancePack in all the member accounts and disables service access for config-multiaccountsetup.amazonaws.com.

Config sets the state of the conformance pack to:

" + "OrganizationConformancePackStatus$Status": "

Indicates deployment status of an organization conformance pack. When management account calls PutOrganizationConformancePack for the first time, conformance pack status is created in all the member accounts. When management account calls PutOrganizationConformancePack for the second time, conformance pack status is updated in all the member accounts. Additionally, conformance pack status is updated when one or more member accounts join or leave an organization. Conformance pack status is deleted when the management account deletes OrganizationConformancePack in all the member accounts and disables service access for config-multiaccountsetup.amazonaws.com.

Config sets the state of the conformance pack to:

" } }, "OrganizationRuleStatus": { "base": null, "refs": { - "OrganizationConfigRuleStatus$OrganizationRuleStatus": "

Indicates deployment status of an organization Config rule. When master account calls PutOrganizationConfigRule action for the first time, Config rule status is created in all the member accounts. When master account calls PutOrganizationConfigRule action for the second time, Config rule status is updated in all the member accounts. Additionally, Config rule status is updated when one or more member accounts join or leave an organization. Config rule status is deleted when the master account deletes OrganizationConfigRule in all the member accounts and disables service access for config-multiaccountsetup.amazonaws.com.

Config sets the state of the rule to:

" + "OrganizationConfigRuleStatus$OrganizationRuleStatus": "

Indicates deployment status of an organization Config rule. When management account calls PutOrganizationConfigRule action for the first time, Config rule status is created in all the member accounts. When management account calls PutOrganizationConfigRule action for the second time, Config rule status is updated in all the member accounts. Additionally, Config rule status is updated when one or more member accounts join or leave an organization. Config rule status is deleted when the management account deletes OrganizationConfigRule in all the member accounts and disables service access for config-multiaccountsetup.amazonaws.com.

Config sets the state of the rule to:

" } }, "OversizedConfigurationItemException": { @@ -3063,7 +3063,7 @@ "SSMDocumentName": { "base": null, "refs": { - "TemplateSSMDocumentDetails$DocumentName": "

The name or Amazon Resource Name (ARN) of the SSM document to use to create a conformance pack. If you use the Document Name, Config checks only your account and region for the SSM document. If you want to use an SSM document from another region or account, you must provide the ARN.

" + "TemplateSSMDocumentDetails$DocumentName": "

The name or Amazon Resource Name (ARN) of the SSM document to use to create a conformance pack. If you use the document name, Config checks only your account and Amazon Web Services Region for the SSM document. If you want to use an SSM document from another Region or account, you must provide the ARN.

" } }, "SSMDocumentVersion": { @@ -3107,13 +3107,13 @@ "SortBy": { "base": null, "refs": { - "ListConformancePackComplianceScoresRequest$SortBy": "

Sorts your conformance pack compliance scores in either ascending or descending order, depending on SortOrder.

By default, conformance pack compliance scores are sorted in ascending order by compliance score and alphabetically by name of the conformance pack if there is more than one conformance pack with the same compliance score.

" + "ListConformancePackComplianceScoresRequest$SortBy": "

Sorts your conformance pack compliance scores in either ascending or descending order, depending on SortOrder.

By default, conformance pack compliance scores are sorted in alphabetical order by name of the conformance pack. Enter SCORE, to sort conformance pack compliance scores by the numerical value of the compliance score.

" } }, "SortOrder": { "base": null, "refs": { - "ListConformancePackComplianceScoresRequest$SortOrder": "

Determines the order in which conformance pack compliance scores are sorted. Either in ascending or descending order.

Conformance packs with a compliance score of INSUFFICIENT_DATA will be first when sorting by ascending order and last when sorting by descending order.

" + "ListConformancePackComplianceScoresRequest$SortOrder": "

Determines the order in which conformance pack compliance scores are sorted. Either in ascending or descending order.

By default, conformance pack compliance scores are sorted in alphabetical order by name of the conformance pack. Conformance pack compliance scores are sorted in reverse alphabetical order if you enter DESCENDING.

You can sort conformance pack compliance scores by the numerical value of the compliance score by entering SCORE in the SortBy action. When compliance scores are sorted by SCORE, conformance packs with a compliance score of INSUFFICIENT_DATA will be last when sorting by ascending order and first when sorting by descending order.

" } }, "Source": { @@ -3485,26 +3485,26 @@ "TemplateBody": { "base": null, "refs": { - "PutConformancePackRequest$TemplateBody": "

A string containing the full conformance pack template body. The structure containing the template body has a minimum length of 1 byte and a maximum length of 51,200 bytes.

You can only use a YAML template with two resource types: Config rule (AWS::Config::ConfigRule) and remediation action (AWS::Config::RemediationConfiguration).

", + "PutConformancePackRequest$TemplateBody": "

A string containing the full conformance pack template body. The structure containing the template body has a minimum length of 1 byte and a maximum length of 51,200 bytes.

You can use a YAML template with two resource types: Config rule (AWS::Config::ConfigRule) and remediation action (AWS::Config::RemediationConfiguration).

", "PutOrganizationConformancePackRequest$TemplateBody": "

A string containing full conformance pack template body. Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes.

" } }, "TemplateS3Uri": { "base": null, "refs": { - "PutConformancePackRequest$TemplateS3Uri": "

The location of the file containing the template body (s3://bucketname/prefix). The uri must point to a conformance pack template (max size: 300 KB) that is located in an Amazon S3 bucket in the same region as the conformance pack.

You must have access to read Amazon S3 bucket.

", + "PutConformancePackRequest$TemplateS3Uri": "

The location of the file containing the template body (s3://bucketname/prefix). The uri must point to a conformance pack template (max size: 300 KB) that is located in an Amazon S3 bucket in the same Region as the conformance pack.

You must have access to read Amazon S3 bucket.

", "PutOrganizationConformancePackRequest$TemplateS3Uri": "

Location of file containing the template body. The uri must point to the conformance pack template (max size: 300 KB).

You must have access to read Amazon S3 bucket.

" } }, "TemplateSSMDocumentDetails": { - "base": "

This API allows you to create a conformance pack template with an Amazon Web Services Systems Manager document (SSM document). To deploy a conformance pack using an SSM document, you first create an SSM document with conformance pack content, and then provide the DocumentName (and optionally DocumentVersion) in the PutConformancePack API.

The TemplateSSMDocumentDetails object contains the name of the SSM document and the version of the SSM document.

", + "base": "

This API allows you to create a conformance pack template with an Amazon Web Services Systems Manager document (SSM document). To deploy a conformance pack using an SSM document, first create an SSM document with conformance pack content, and then provide the DocumentName in the PutConformancePack API. You can also provide the DocumentVersion.

The TemplateSSMDocumentDetails object contains the name of the SSM document and the version of the SSM document.

", "refs": { "ConformancePackDetail$TemplateSSMDocumentDetails": "

An object that contains the name or Amazon Resource Name (ARN) of the Amazon Web Services Systems Manager document (SSM document) and the version of the SSM document that is used to create a conformance pack.

", "PutConformancePackRequest$TemplateSSMDocumentDetails": "

An object of type TemplateSSMDocumentDetails, which contains the name or the Amazon Resource Name (ARN) of the Amazon Web Services Systems Manager document (SSM document) and the version of the SSM document that is used to create a conformance pack.

" } }, "TooManyTagsException": { - "base": "

You have reached the limit of the number of tags you can use. You have more than 50 tags.

", + "base": "

You have reached the limit of the number of tags you can use. For more information, see Service Limits in the Config Developer Guide.

", "refs": { } }, @@ -3520,7 +3520,7 @@ } }, "ValidationException": { - "base": "

The requested action is not valid.

For PutStoredQuery, you will see this exception if there are missing required fields or if the input value fails the validation, or if you are trying to create more than 300 queries.

For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are missing required fields or if the input value fails the validation.

", + "base": "

The requested action is invalid.

For PutStoredQuery, you will see this exception if there are missing required fields or if the input value fails the validation, or if you are trying to create more than 300 queries.

For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are missing required fields or if the input value fails the validation.

", "refs": { } }, diff --git a/models/apis/config/2014-11-12/endpoint-rule-set-1.json b/models/apis/config/2014-11-12/endpoint-rule-set-1.json new file mode 100644 index 0000000000..fbf81ba9d6 --- /dev/null +++ b/models/apis/config/2014-11-12/endpoint-rule-set-1.json @@ -0,0 +1,340 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://config-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + "aws-us-gov", + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "name" + ] + } + ] + } + ], + "endpoint": { + "url": "https://config.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://config-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://config.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://config.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/models/apis/config/2014-11-12/endpoint-tests-1.json b/models/apis/config/2014-11-12/endpoint-tests-1.json new file mode 100644 index 0000000000..194e924e19 --- /dev/null +++ b/models/apis/config/2014-11-12/endpoint-tests-1.json @@ -0,0 +1,1747 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://config.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://config.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/connect/2017-08-08/api-2.json b/models/apis/connect/2017-08-08/api-2.json index d98bb87d89..6761643805 100644 --- a/models/apis/connect/2017-08-08/api-2.json +++ b/models/apis/connect/2017-08-08/api-2.json @@ -392,6 +392,25 @@ {"shape":"InternalServiceException"} ] }, + "CreateTrafficDistributionGroup":{ + "name":"CreateTrafficDistributionGroup", + "http":{ + "method":"PUT", + "requestUri":"/traffic-distribution-group" + }, + "input":{"shape":"CreateTrafficDistributionGroupRequest"}, + "output":{"shape":"CreateTrafficDistributionGroupResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"ResourceConflictException"}, + {"shape":"ResourceNotReadyException"} + ] + }, "CreateUseCase":{ "name":"CreateUseCase", "http":{ @@ -585,6 +604,22 @@ {"shape":"InternalServiceException"} ] }, + "DeleteTrafficDistributionGroup":{ + "name":"DeleteTrafficDistributionGroup", + "http":{ + "method":"DELETE", + "requestUri":"/traffic-distribution-group/{TrafficDistributionGroupId}" + }, + "input":{"shape":"DeleteTrafficDistributionGroupRequest"}, + "output":{"shape":"DeleteTrafficDistributionGroupResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceInUseException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceException"} + ] + }, "DeleteUseCase":{ "name":"DeleteUseCase", "http":{ @@ -855,6 +890,22 @@ {"shape":"InternalServiceException"} ] }, + "DescribeTrafficDistributionGroup":{ + "name":"DescribeTrafficDistributionGroup", + "http":{ + "method":"GET", + "requestUri":"/traffic-distribution-group/{TrafficDistributionGroupId}" + }, + "input":{"shape":"DescribeTrafficDistributionGroupRequest"}, + "output":{"shape":"DescribeTrafficDistributionGroupResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"ThrottlingException"} + ] + }, "DescribeUser":{ "name":"DescribeUser", "http":{ @@ -1148,6 +1199,22 @@ {"shape":"InternalServiceException"} ] }, + "GetTrafficDistribution":{ + "name":"GetTrafficDistribution", + "http":{ + "method":"GET", + "requestUri":"/traffic-distribution/{Id}" + }, + "input":{"shape":"GetTrafficDistributionRequest"}, + "output":{"shape":"GetTrafficDistributionResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"ThrottlingException"} + ] + }, "ListAgentStatuses":{ "name":"ListAgentStatuses", "http":{ @@ -1575,6 +1642,21 @@ {"shape":"InternalServiceException"} ] }, + "ListTrafficDistributionGroups":{ + "name":"ListTrafficDistributionGroups", + "http":{ + "method":"GET", + "requestUri":"/traffic-distribution-groups" + }, + "input":{"shape":"ListTrafficDistributionGroupsRequest"}, + "output":{"shape":"ListTrafficDistributionGroupsResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceException"} + ] + }, "ListUseCases":{ "name":"ListUseCases", "http":{ @@ -1656,6 +1738,25 @@ {"shape":"AccessDeniedException"} ] }, + "ReplicateInstance":{ + "name":"ReplicateInstance", + "http":{ + "method":"POST", + "requestUri":"/instance/{InstanceId}/replicate" + }, + "input":{"shape":"ReplicateInstanceRequest"}, + "output":{"shape":"ReplicateInstanceResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalServiceException"}, + {"shape":"ResourceNotReadyException"}, + {"shape":"ResourceConflictException"} + ] + }, "ResumeContactRecording":{ "name":"ResumeContactRecording", "http":{ @@ -2364,6 +2465,23 @@ {"shape":"InternalServiceException"} ] }, + "UpdateTrafficDistribution":{ + "name":"UpdateTrafficDistribution", + "http":{ + "method":"PUT", + "requestUri":"/traffic-distribution/{Id}" + }, + "input":{"shape":"UpdateTrafficDistributionRequest"}, + "output":{"shape":"UpdateTrafficDistributionResponse"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ResourceConflictException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceException"} + ] + }, "UpdateUserHierarchy":{ "name":"UpdateUserHierarchy", "http":{ @@ -2849,6 +2967,12 @@ "type":"list", "member":{"shape":"AvailableNumberSummary"} }, + "AwsRegion":{ + "type":"string", + "max":31, + "min":8, + "pattern":"[a-z]{2}(-[a-z]+){1,2}(-[0-9])?" + }, "Boolean":{"type":"boolean"}, "BotName":{ "type":"string", @@ -3507,6 +3631,30 @@ "Arn":{"shape":"TaskTemplateArn"} } }, + "CreateTrafficDistributionGroupRequest":{ + "type":"structure", + "required":[ + "Name", + "InstanceId" + ], + "members":{ + "Name":{"shape":"Name128"}, + "Description":{"shape":"Description250"}, + "InstanceId":{"shape":"InstanceIdOrArn"}, + "ClientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + }, + "Tags":{"shape":"TagMap"} + } + }, + "CreateTrafficDistributionGroupResponse":{ + "type":"structure", + "members":{ + "Id":{"shape":"TrafficDistributionGroupId"}, + "Arn":{"shape":"TrafficDistributionGroupArn"} + } + }, "CreateUseCaseRequest":{ "type":"structure", "required":[ @@ -3878,6 +4026,22 @@ "members":{ } }, + "DeleteTrafficDistributionGroupRequest":{ + "type":"structure", + "required":["TrafficDistributionGroupId"], + "members":{ + "TrafficDistributionGroupId":{ + "shape":"TrafficDistributionGroupIdOrArn", + "location":"uri", + "locationName":"TrafficDistributionGroupId" + } + } + }, + "DeleteTrafficDistributionGroupResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteUseCaseRequest":{ "type":"structure", "required":[ @@ -4288,6 +4452,23 @@ "SecurityProfile":{"shape":"SecurityProfile"} } }, + "DescribeTrafficDistributionGroupRequest":{ + "type":"structure", + "required":["TrafficDistributionGroupId"], + "members":{ + "TrafficDistributionGroupId":{ + "shape":"TrafficDistributionGroupIdOrArn", + "location":"uri", + "locationName":"TrafficDistributionGroupId" + } + } + }, + "DescribeTrafficDistributionGroupResponse":{ + "type":"structure", + "members":{ + "TrafficDistributionGroup":{"shape":"TrafficDistributionGroup"} + } + }, "DescribeUserHierarchyGroupRequest":{ "type":"structure", "required":[ @@ -4386,6 +4567,12 @@ "max":4096, "min":0 }, + "Description250":{ + "type":"string", + "max":250, + "min":1, + "pattern":"(^[\\S].*[\\S]$)|(^[\\S]$)" + }, "DestinationNotAllowedException":{ "type":"structure", "members":{ @@ -4609,6 +4796,21 @@ "max":256, "min":1 }, + "Distribution":{ + "type":"structure", + "required":[ + "Region", + "Percentage" + ], + "members":{ + "Region":{"shape":"AwsRegion"}, + "Percentage":{"shape":"Percentage"} + } + }, + "DistributionList":{ + "type":"list", + "member":{"shape":"Distribution"} + }, "DuplicateResourceException":{ "type":"structure", "members":{ @@ -4837,6 +5039,25 @@ "Tags":{"shape":"TagMap"} } }, + "GetTrafficDistributionRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"TrafficDistributionGroupIdOrArn", + "location":"uri", + "locationName":"Id" + } + } + }, + "GetTrafficDistributionResponse":{ + "type":"structure", + "members":{ + "TelephonyConfig":{"shape":"TelephonyConfig"}, + "Id":{"shape":"TrafficDistributionGroupId"}, + "Arn":{"shape":"TrafficDistributionGroupArn"} + } + }, "Grouping":{ "type":"string", "enum":[ @@ -5136,6 +5357,10 @@ "OutboundCallsEnabled":{"shape":"OutboundCallsEnabled"} } }, + "InstanceArn":{ + "type":"string", + "pattern":"arn:(aws|aws-us-gov):connect:[a-z]{2}-[a-z]+-[0-9-]{1}:[0-9]{1,20}:instance/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" + }, "InstanceAttributeType":{ "type":"string", "enum":[ @@ -5160,6 +5385,12 @@ "max":100, "min":1 }, + "InstanceIdOrArn":{ + "type":"string", + "max":250, + "min":1, + "pattern":"^(arn:(aws|aws-us-gov):connect:[a-z]{2}-[a-z]+-[0-9]{1}:[0-9]{1,20}:instance/)?[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + }, "InstanceStatus":{ "type":"string", "enum":[ @@ -6250,6 +6481,33 @@ "NextToken":{"shape":"NextToken"} } }, + "ListTrafficDistributionGroupsRequest":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"MaxResult10", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"NextToken", + "location":"querystring", + "locationName":"nextToken" + }, + "InstanceId":{ + "shape":"InstanceIdOrArn", + "location":"querystring", + "locationName":"instanceId" + } + } + }, + "ListTrafficDistributionGroupsResponse":{ + "type":"structure", + "members":{ + "NextToken":{"shape":"NextToken"}, + "TrafficDistributionGroupSummaryList":{"shape":"TrafficDistributionGroupSummaryList"} + } + }, "ListUseCasesRequest":{ "type":"structure", "required":[ @@ -6402,6 +6660,12 @@ "max":512, "min":0 }, + "Name128":{ + "type":"string", + "max":128, + "min":1, + "pattern":"(^[\\S].*[\\S]$)|(^[\\S]$)" + }, "NextToken":{"type":"string"}, "NextToken2500":{ "type":"string", @@ -6471,6 +6735,11 @@ "type":"string", "pattern":"/^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d\\S]{8,64}$/" }, + "Percentage":{ + "type":"integer", + "max":100, + "min":0 + }, "PermissionsList":{ "type":"list", "member":{"shape":"SecurityProfilePermission"}, @@ -7181,6 +7450,34 @@ } } }, + "ReplicateInstanceRequest":{ + "type":"structure", + "required":[ + "InstanceId", + "ReplicaRegion", + "ReplicaAlias" + ], + "members":{ + "InstanceId":{ + "shape":"InstanceIdOrArn", + "location":"uri", + "locationName":"InstanceId" + }, + "ReplicaRegion":{"shape":"AwsRegion"}, + "ClientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + }, + "ReplicaAlias":{"shape":"DirectoryAlias"} + } + }, + "ReplicateInstanceResponse":{ + "type":"structure", + "members":{ + "Id":{"shape":"InstanceId"}, + "Arn":{"shape":"ARN"} + } + }, "RequiredFieldInfo":{ "type":"structure", "members":{ @@ -7217,6 +7514,14 @@ "error":{"httpStatusCode":404}, "exception":true }, + "ResourceNotReadyException":{ + "type":"structure", + "members":{ + "Message":{"shape":"Message"} + }, + "error":{"httpStatusCode":409}, + "exception":true + }, "ResourceType":{ "type":"string", "enum":[ @@ -8079,6 +8384,13 @@ "INACTIVE" ] }, + "TelephonyConfig":{ + "type":"structure", + "required":["Distributions"], + "members":{ + "Distributions":{"shape":"DistributionList"} + } + }, "Threshold":{ "type":"structure", "members":{ @@ -8100,6 +8412,57 @@ }, "TimeZone":{"type":"string"}, "Timestamp":{"type":"timestamp"}, + "TrafficDistributionGroup":{ + "type":"structure", + "members":{ + "Id":{"shape":"TrafficDistributionGroupId"}, + "Arn":{"shape":"TrafficDistributionGroupArn"}, + "Name":{"shape":"Name128"}, + "Description":{"shape":"Description250"}, + "InstanceArn":{"shape":"InstanceArn"}, + "Status":{"shape":"TrafficDistributionGroupStatus"}, + "Tags":{"shape":"TagMap"} + } + }, + "TrafficDistributionGroupArn":{ + "type":"string", + "pattern":"^arn:(aws|aws-us-gov):connect:[a-z]{2}-[a-z]+-[0-9]{1}:[0-9]{1,20}:traffic-distribution-group/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + }, + "TrafficDistributionGroupId":{ + "type":"string", + "pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + }, + "TrafficDistributionGroupIdOrArn":{ + "type":"string", + "pattern":"^(arn:(aws|aws-us-gov):connect:[a-z]{2}-[a-z-]+-[0-9]{1}:[0-9]{1,20}:traffic-distribution-group/)?[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + }, + "TrafficDistributionGroupStatus":{ + "type":"string", + "enum":[ + "CREATION_IN_PROGRESS", + "ACTIVE", + "CREATION_FAILED", + "PENDING_DELETION", + "DELETION_FAILED", + "UPDATE_IN_PROGRESS" + ] + }, + "TrafficDistributionGroupSummary":{ + "type":"structure", + "members":{ + "Id":{"shape":"TrafficDistributionGroupId"}, + "Arn":{"shape":"TrafficDistributionGroupArn"}, + "Name":{"shape":"Name128"}, + "InstanceArn":{"shape":"InstanceArn"}, + "Status":{"shape":"TrafficDistributionGroupStatus"} + } + }, + "TrafficDistributionGroupSummaryList":{ + "type":"list", + "member":{"shape":"TrafficDistributionGroupSummary"}, + "max":10, + "min":0 + }, "TrafficType":{ "type":"string", "enum":[ @@ -8781,6 +9144,23 @@ "CreatedTime":{"shape":"timestamp"} } }, + "UpdateTrafficDistributionRequest":{ + "type":"structure", + "required":["Id"], + "members":{ + "Id":{ + "shape":"TrafficDistributionGroupIdOrArn", + "location":"uri", + "locationName":"Id" + }, + "TelephonyConfig":{"shape":"TelephonyConfig"} + } + }, + "UpdateTrafficDistributionResponse":{ + "type":"structure", + "members":{ + } + }, "UpdateUserHierarchyGroupNameRequest":{ "type":"structure", "required":[ diff --git a/models/apis/connect/2017-08-08/docs-2.json b/models/apis/connect/2017-08-08/docs-2.json index 388b285bf2..4d7e26306c 100644 --- a/models/apis/connect/2017-08-08/docs-2.json +++ b/models/apis/connect/2017-08-08/docs-2.json @@ -8,22 +8,23 @@ "AssociateInstanceStorageConfig": "

This API is in preview release for Amazon Connect and is subject to change.

Associates a storage resource type for the first time. You can only associate one type of storage configuration in a single call. This means, for example, that you can't define an instance with multiple S3 buckets for storing chat transcripts.

This API does not create a resource that doesn't exist. It only associates it to the instance. Ensure that the resource being specified in the storage configuration, like an S3 bucket, exists when being used for association.

", "AssociateLambdaFunction": "

This API is in preview release for Amazon Connect and is subject to change.

Allows the specified Amazon Connect instance to access the specified Lambda function.

", "AssociateLexBot": "

This API is in preview release for Amazon Connect and is subject to change.

Allows the specified Amazon Connect instance to access the specified Amazon Lex bot.

", - "AssociatePhoneNumberContactFlow": "

Associates a flow with a phone number claimed to your Amazon Connect instance.

", + "AssociatePhoneNumberContactFlow": "

Associates a flow with a phone number claimed to your Amazon Connect instance.

If the number is claimed to a traffic distribution group, and you are calling this API using an instance in the Amazon Web Services Region where the traffic distribution group was created, you can use either a full phone number ARN or UUID value for the PhoneNumberId URI request parameter. However, if the number is claimed to a traffic distribution group and you are calling this API using an instance in the alternate Amazon Web Services Region associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException.

", "AssociateQueueQuickConnects": "

This API is in preview release for Amazon Connect and is subject to change.

Associates a set of quick connects with a queue.

", "AssociateRoutingProfileQueues": "

Associates a set of queues with a routing profile.

", "AssociateSecurityKey": "

This API is in preview release for Amazon Connect and is subject to change.

Associates a security key to the instance.

", - "ClaimPhoneNumber": "

Claims an available phone number to your Amazon Connect instance.

", + "ClaimPhoneNumber": "

Claims an available phone number to your Amazon Connect instance or traffic distribution group. You can call this API only in the same Amazon Web Services Region where the Amazon Connect instance or traffic distribution group was created.

You can call the DescribePhoneNumber API to verify the status of a previous ClaimPhoneNumber operation.

", "CreateAgentStatus": "

This API is in preview release for Amazon Connect and is subject to change.

Creates an agent status for the specified Amazon Connect instance.

", "CreateContactFlow": "

Creates a flow for the specified Amazon Connect instance.

You can also create and update flows using the Amazon Connect Flow language.

", "CreateContactFlowModule": "

Creates a flow module for the specified Amazon Connect instance.

", "CreateHoursOfOperation": "

This API is in preview release for Amazon Connect and is subject to change.

Creates hours of operation.

", "CreateInstance": "

This API is in preview release for Amazon Connect and is subject to change.

Initiates an Amazon Connect instance with all the supported channels enabled. It does not attach any storage, such as Amazon Simple Storage Service (Amazon S3) or Amazon Kinesis. It also does not allow for any configurations on features, such as Contact Lens for Amazon Connect.

Amazon Connect enforces a limit on the total number of instances that you can create or delete in 30 days. If you exceed this limit, you will get an error message indicating there has been an excessive number of attempts at creating or deleting instances. You must wait 30 days before you can restart creating and deleting instances in your account.

", "CreateIntegrationAssociation": "

Creates an Amazon Web Services resource association with an Amazon Connect instance.

", - "CreateQueue": "

This API is in preview release for Amazon Connect and is subject to change.

Creates a new queue for the specified Amazon Connect instance.

", + "CreateQueue": "

This API is in preview release for Amazon Connect and is subject to change.

Creates a new queue for the specified Amazon Connect instance.

If the number being used in the input is claimed to a traffic distribution group, and you are calling this API using an instance in the Amazon Web Services Region where the traffic distribution group was created, you can use either a full phone number ARN or UUID value for the OutboundCallerIdNumberId value of the OutboundCallerConfig request body parameter. However, if the number is claimed to a traffic distribution group and you are calling this API using an instance in the alternate Amazon Web Services Region associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException.

", "CreateQuickConnect": "

Creates a quick connect for the specified Amazon Connect instance.

", "CreateRoutingProfile": "

Creates a new routing profile.

", "CreateSecurityProfile": "

This API is in preview release for Amazon Connect and is subject to change.

Creates a security profile.

", "CreateTaskTemplate": "

Creates a new task template in the specified Amazon Connect instance.

", + "CreateTrafficDistributionGroup": "

Creates a traffic distribution group given an Amazon Connect instance that has been replicated.

For more information about creating traffic distribution groups, see Set up traffic distribution groups in the Amazon Connect Administrator Guide.

", "CreateUseCase": "

Creates a use case for an integration association.

", "CreateUser": "

Creates a user account for the specified Amazon Connect instance.

For information about how to create user accounts using the Amazon Connect console, see Add Users in the Amazon Connect Administrator Guide.

", "CreateUserHierarchyGroup": "

Creates a new user hierarchy group.

", @@ -36,6 +37,7 @@ "DeleteQuickConnect": "

Deletes a quick connect.

", "DeleteSecurityProfile": "

This API is in preview release for Amazon Connect and is subject to change.

Deletes a security profile.

", "DeleteTaskTemplate": "

Deletes the task template.

", + "DeleteTrafficDistributionGroup": "

Deletes a traffic distribution group. This API can be called only in the Region where the traffic distribution group is created.

For more information about deleting traffic distribution groups, see Delete traffic distribution groups in the Amazon Connect Administrator Guide.

", "DeleteUseCase": "

Deletes a use case from an integration association.

", "DeleteUser": "

Deletes a user account from the specified Amazon Connect instance.

For information about what happens to a user's data when their account is deleted, see Delete Users from Your Amazon Connect Instance in the Amazon Connect Administrator Guide.

", "DeleteUserHierarchyGroup": "

Deletes an existing user hierarchy group. It must not be associated with any agents or have any active child groups.

", @@ -48,11 +50,12 @@ "DescribeInstance": "

This API is in preview release for Amazon Connect and is subject to change.

Returns the current state of the specified instance identifier. It tracks the instance while it is being created and returns an error status, if applicable.

If an instance is not created successfully, the instance status reason field returns details relevant to the reason. The instance in a failed state is returned only for 24 hours after the CreateInstance API was invoked.

", "DescribeInstanceAttribute": "

This API is in preview release for Amazon Connect and is subject to change.

Describes the specified instance attribute.

", "DescribeInstanceStorageConfig": "

This API is in preview release for Amazon Connect and is subject to change.

Retrieves the current storage configurations for the specified resource type, association ID, and instance ID.

", - "DescribePhoneNumber": "

Gets details and status of a phone number that’s claimed to your Amazon Connect instance

", + "DescribePhoneNumber": "

Gets details and status of a phone number that’s claimed to your Amazon Connect instance or traffic distribution group.

If the number is claimed to a traffic distribution group, and you are calling in the Amazon Web Services Region where the traffic distribution group was created, you can use either a phone number ARN or UUID value for the PhoneNumberId URI request parameter. However, if the number is claimed to a traffic distribution group and you are calling this API in the alternate Amazon Web Services Region associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException.

", "DescribeQueue": "

This API is in preview release for Amazon Connect and is subject to change.

Describes the specified queue.

", "DescribeQuickConnect": "

Describes the quick connect.

", "DescribeRoutingProfile": "

Describes the specified routing profile.

", "DescribeSecurityProfile": "

This API is in preview release for Amazon Connect and is subject to change.

Gets basic information about the security profle.

", + "DescribeTrafficDistributionGroup": "

Gets details and status of a traffic distribution group.

", "DescribeUser": "

Describes the specified user account. You can find the instance ID in the console (it’s the final part of the ARN). The console does not display the user IDs. Instead, list the users and note the IDs provided in the output.

", "DescribeUserHierarchyGroup": "

Describes the specified hierarchy group.

", "DescribeUserHierarchyStructure": "

Describes the hierarchy structure of the specified Amazon Connect instance.

", @@ -62,7 +65,7 @@ "DisassociateInstanceStorageConfig": "

This API is in preview release for Amazon Connect and is subject to change.

Removes the storage type configurations for the specified resource type and association ID.

", "DisassociateLambdaFunction": "

This API is in preview release for Amazon Connect and is subject to change.

Remove the Lambda function from the dropdown options available in the relevant flow blocks.

", "DisassociateLexBot": "

This API is in preview release for Amazon Connect and is subject to change.

Revokes authorization from the specified instance to access the specified Amazon Lex bot.

", - "DisassociatePhoneNumberContactFlow": "

Removes the flow association from a phone number claimed to your Amazon Connect instance, if a flow association exists.

", + "DisassociatePhoneNumberContactFlow": "

Removes the flow association from a phone number claimed to your Amazon Connect instance.

If the number is claimed to a traffic distribution group, and you are calling this API using an instance in the Amazon Web Services Region where the traffic distribution group was created, you can use either a full phone number ARN or UUID value for the PhoneNumberId URI request parameter. However, if the number is claimed to a traffic distribution group and you are calling this API using an instance in the alternate Amazon Web Services Region associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException.

", "DisassociateQueueQuickConnects": "

This API is in preview release for Amazon Connect and is subject to change.

Disassociates a set of quick connects from a queue.

", "DisassociateRoutingProfileQueues": "

Disassociates a set of queues from a routing profile.

", "DisassociateSecurityKey": "

This API is in preview release for Amazon Connect and is subject to change.

Deletes the specified security key.

", @@ -72,6 +75,7 @@ "GetFederationToken": "

Retrieves a token for federation.

This API doesn't support root users. If you try to invoke GetFederationToken with root credentials, an error message similar to the following one appears:

Provided identity: Principal: .... User: .... cannot be used for federation with Amazon Connect

", "GetMetricData": "

Gets historical metric data from the specified Amazon Connect instance.

For a description of each historical metric, see Historical Metrics Definitions in the Amazon Connect Administrator Guide.

", "GetTaskTemplate": "

Gets details about a specific task template in the specified Amazon Connect instance.

", + "GetTrafficDistribution": "

Retrieves the current traffic distribution for a given traffic distribution group.

", "ListAgentStatuses": "

This API is in preview release for Amazon Connect and is subject to change.

Lists agent statuses.

", "ListApprovedOrigins": "

This API is in preview release for Amazon Connect and is subject to change.

Returns a paginated list of all approved origins associated with the instance.

", "ListBots": "

This API is in preview release for Amazon Connect and is subject to change.

For the specified version of Amazon Lex, returns a paginated list of all the Amazon Lex bots currently associated with the instance. Use this API to returns both Amazon Lex V1 and V2 bots.

", @@ -86,8 +90,8 @@ "ListIntegrationAssociations": "

Provides summary information about the Amazon Web Services resource associations for the specified Amazon Connect instance.

", "ListLambdaFunctions": "

This API is in preview release for Amazon Connect and is subject to change.

Returns a paginated list of all Lambda functions that display in the dropdown options in the relevant flow blocks.

", "ListLexBots": "

This API is in preview release for Amazon Connect and is subject to change.

Returns a paginated list of all the Amazon Lex V1 bots currently associated with the instance. To return both Amazon Lex V1 and V2 bots, use the ListBots API.

", - "ListPhoneNumbers": "

Provides information about the phone numbers for the specified Amazon Connect instance.

For more information about phone numbers, see Set Up Phone Numbers for Your Contact Center in the Amazon Connect Administrator Guide.

", - "ListPhoneNumbersV2": "

Lists phone numbers claimed to your Amazon Connect instance.

For more information about phone numbers, see Set Up Phone Numbers for Your Contact Center in the Amazon Connect Administrator Guide.

", + "ListPhoneNumbers": "

Provides information about the phone numbers for the specified Amazon Connect instance.

For more information about phone numbers, see Set Up Phone Numbers for Your Contact Center in the Amazon Connect Administrator Guide.

The phone number Arn value that is returned from each of the items in the PhoneNumberSummaryList cannot be used to tag phone number resources. It will fail with a ResourceNotFoundException. Instead, use the ListPhoneNumbersV2 API. It returns the new phone number ARN that can be used to tag phone number resources.

", + "ListPhoneNumbersV2": "

Lists phone numbers claimed to your Amazon Connect instance or traffic distribution group. If the provided TargetArn is a traffic distribution group, you can call this API in both Amazon Web Services Regions associated with traffic distribution group.

For more information about phone numbers, see Set Up Phone Numbers for Your Contact Center in the Amazon Connect Administrator Guide.

", "ListPrompts": "

Provides information about the prompts for the specified Amazon Connect instance.

", "ListQueueQuickConnects": "

This API is in preview release for Amazon Connect and is subject to change.

Lists the quick connects associated with a queue.

", "ListQueues": "

Provides information about the queues for the specified Amazon Connect instance.

If you do not specify a QueueTypes parameter, both standard and agent queues are returned. This might cause an unexpected truncation of results if you have more than 1000 agents and you limit the number of results of the API call in code.

For more information about queues, see Queues: Standard and Agent in the Amazon Connect Administrator Guide.

", @@ -99,17 +103,19 @@ "ListSecurityProfiles": "

Provides summary information about the security profiles for the specified Amazon Connect instance.

For more information about security profiles, see Security Profiles in the Amazon Connect Administrator Guide.

", "ListTagsForResource": "

Lists the tags for the specified resource.

For sample policies that use tags, see Amazon Connect Identity-Based Policy Examples in the Amazon Connect Administrator Guide.

", "ListTaskTemplates": "

Lists task templates for the specified Amazon Connect instance.

", + "ListTrafficDistributionGroups": "

Lists traffic distribution groups.

", "ListUseCases": "

Lists the use cases for the integration association.

", "ListUserHierarchyGroups": "

Provides summary information about the hierarchy groups for the specified Amazon Connect instance.

For more information about agent hierarchies, see Set Up Agent Hierarchies in the Amazon Connect Administrator Guide.

", "ListUsers": "

Provides summary information about the users for the specified Amazon Connect instance.

", "PutUserStatus": "

Changes the current status of a user or agent in Amazon Connect. If the agent is currently handling a contact, this sets the agent's next status.

For more information, see Agent status and Set your next status in the Amazon Connect Administrator Guide.

", - "ReleasePhoneNumber": "

Releases a phone number previously claimed to an Amazon Connect instance.

", + "ReleasePhoneNumber": "

Releases a phone number previously claimed to an Amazon Connect instance or traffic distribution group. You can call this API only in the Amazon Web Services Region where the number was claimed.

To release phone numbers from a traffic distribution group, use the ReleasePhoneNumber API, not the Amazon Connect console.

After releasing a phone number, the phone number enters into a cooldown period of 30 days. It cannot be searched for or claimed again until the period has ended. If you accidentally release a phone number, contact Amazon Web Services Support.

", + "ReplicateInstance": "

Replicates an Amazon Connect instance in the specified Amazon Web Services Region.

For more information about replicating an Amazon Connect instance, see Create a replica of your existing Amazon Connect instance in the Amazon Connect Administrator Guide.

", "ResumeContactRecording": "

When a contact is being recorded, and the recording has been suspended using SuspendContactRecording, this API resumes recording the call.

Only voice recordings are supported at this time.

", - "SearchAvailablePhoneNumbers": "

Searches for available phone numbers that you can claim to your Amazon Connect instance.

", + "SearchAvailablePhoneNumbers": "

Searches for available phone numbers that you can claim to your Amazon Connect instance or traffic distribution group. If the provided TargetArn is a traffic distribution group, you can call this API in both Amazon Web Services Regions associated with the traffic distribution group.

", "SearchQueues": "

This API is in preview release for Amazon Connect and is subject to change.

Searches queues in an Amazon Connect instance, with optional filtering.

", "SearchRoutingProfiles": "

This API is in preview release for Amazon Connect and is subject to change.

Searches routing profiles in an Amazon Connect instance, with optional filtering.

", "SearchSecurityProfiles": "

This API is in preview release for Amazon Connect and is subject to change.

Searches security profiles in an Amazon Connect instance, with optional filtering.

", - "SearchUsers": "

Searches users in an Amazon Connect instance, with optional filtering.

", + "SearchUsers": "

Searches users in an Amazon Connect instance, with optional filtering.

AfterContactWorkTimeLimit is returned in milliseconds.

", "SearchVocabularies": "

Searches for vocabularies within a specific Amazon Connect instance using State, NameStartsWith, and LanguageCode.

", "StartChatContact": "

Initiates a flow to start a new chat for the customer. Response of this API provides a token required to obtain credentials from the CreateParticipantConnection API in the Amazon Connect Participant Service.

When a new chat contact is successfully created, clients must subscribe to the participant’s connection for the created chat within 5 minutes. This is achieved by invoking CreateParticipantConnection with WEBSOCKET and CONNECTION_CREDENTIALS.

A 429 error occurs in the following situations:

If you use the ChatDurationInMinutes parameter and receive a 400 error, your account may not support the ability to configure custom chat durations. For more information, contact Amazon Web Services Support.

For more information about chat, see Chat in the Amazon Connect Administrator Guide.

", "StartContactRecording": "

Starts recording the contact:

StartContactRecording is a one-time action. For example, if you use StopContactRecording to stop recording an ongoing call, you can't use StartContactRecording to restart it. For scenarios where the recording has started and you want to suspend and resume it, such as when collecting sensitive information (for example, a credit card number), use SuspendContactRecording and ResumeContactRecording.

You can use this API to override the recording behavior configured in the Set recording behavior block.

Only voice recordings are supported at this time.

", @@ -135,11 +141,11 @@ "UpdateHoursOfOperation": "

This API is in preview release for Amazon Connect and is subject to change.

Updates the hours of operation.

", "UpdateInstanceAttribute": "

This API is in preview release for Amazon Connect and is subject to change.

Updates the value for the specified attribute type.

", "UpdateInstanceStorageConfig": "

This API is in preview release for Amazon Connect and is subject to change.

Updates an existing configuration for a resource type. This API is idempotent.

", - "UpdatePhoneNumber": "

Updates your claimed phone number from its current Amazon Connect instance to another Amazon Connect instance in the same Region.

", + "UpdatePhoneNumber": "

Updates your claimed phone number from its current Amazon Connect instance or traffic distribution group to another Amazon Connect instance or traffic distribution group in the same Amazon Web Services Region.

You can call DescribePhoneNumber API to verify the status of a previous UpdatePhoneNumber operation.

", "UpdateQueueHoursOfOperation": "

This API is in preview release for Amazon Connect and is subject to change.

Updates the hours of operation for the specified queue.

", "UpdateQueueMaxContacts": "

This API is in preview release for Amazon Connect and is subject to change.

Updates the maximum number of contacts allowed in a queue before it is considered full.

", "UpdateQueueName": "

This API is in preview release for Amazon Connect and is subject to change.

Updates the name and description of a queue. At least Name or Description must be provided.

", - "UpdateQueueOutboundCallerConfig": "

This API is in preview release for Amazon Connect and is subject to change.

Updates the outbound caller ID name, number, and outbound whisper flow for a specified queue.

", + "UpdateQueueOutboundCallerConfig": "

This API is in preview release for Amazon Connect and is subject to change.

Updates the outbound caller ID name, number, and outbound whisper flow for a specified queue.

If the number being used in the input is claimed to a traffic distribution group, and you are calling this API using an instance in the Amazon Web Services Region where the traffic distribution group was created, you can use either a full phone number ARN or UUID value for the OutboundCallerIdNumberId value of the OutboundCallerConfig request body parameter. However, if the number is claimed to a traffic distribution group and you are calling this API using an instance in the alternate Amazon Web Services Region associated with the traffic distribution group, you must provide a full phone number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException.

", "UpdateQueueStatus": "

This API is in preview release for Amazon Connect and is subject to change.

Updates the status of the queue.

", "UpdateQuickConnectConfig": "

Updates the configuration settings for the specified quick connect.

", "UpdateQuickConnectName": "

Updates the name and description of a quick connect. The request accepts the following data in JSON format. At least Name or Description must be provided.

", @@ -149,6 +155,7 @@ "UpdateRoutingProfileQueues": "

Updates the properties associated with a set of queues for a routing profile.

", "UpdateSecurityProfile": "

This API is in preview release for Amazon Connect and is subject to change.

Updates a security profile.

", "UpdateTaskTemplate": "

Updates details about a specific task template in the specified Amazon Connect instance. This operation does not support partial updates. Instead it does a full update of template content.

", + "UpdateTrafficDistribution": "

Updates the traffic distribution for a given traffic distribution group. For more information about updating a traffic distribution group see Update telephony traffic distribution across Amazon Web Services Regions in the Amazon Connect Administrator Guide.

", "UpdateUserHierarchy": "

Assigns the specified hierarchy group to the specified user.

", "UpdateUserHierarchyGroupName": "

Updates the name of the user hierarchy group.

", "UpdateUserHierarchyStructure": "

Updates the user hierarchy structure: add, remove, and rename user hierarchy levels.

", @@ -164,10 +171,10 @@ "AgentStatus$AgentStatusARN": "

The Amazon Resource Name (ARN) of the agent status.

", "AgentStatusReference$StatusArn": "

The Amazon Resource Name (ARN) of the agent's status.

", "AgentStatusSummary$Arn": "

The Amazon Resource Name (ARN) for the agent status.

", - "ClaimPhoneNumberRequest$TargetArn": "

The Amazon Resource Name (ARN) for Amazon Connect instances that phone numbers are claimed to.

", + "ClaimPhoneNumberRequest$TargetArn": "

The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution groups that phone numbers are claimed to.

", "ClaimPhoneNumberResponse$PhoneNumberArn": "

The Amazon Resource Name (ARN) of the phone number.

", "ClaimedPhoneNumberSummary$PhoneNumberArn": "

The Amazon Resource Name (ARN) of the phone number.

", - "ClaimedPhoneNumberSummary$TargetArn": "

The Amazon Resource Name (ARN) for Amazon Connect instances that phone numbers are claimed to.

", + "ClaimedPhoneNumberSummary$TargetArn": "

The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution groups that phone numbers are claimed to.

", "Contact$Arn": "

The Amazon Resource Name (ARN) for the contact.

", "ContactFlow$Arn": "

The Amazon Resource Name (ARN) of the flow.

", "ContactFlowModule$Arn": "

The Amazon Resource Name (ARN).

", @@ -204,8 +211,8 @@ "KinesisFirehoseConfig$FirehoseArn": "

The Amazon Resource Name (ARN) of the delivery stream.

", "KinesisStreamConfig$StreamArn": "

The Amazon Resource Name (ARN) of the data stream.

", "ListPhoneNumbersSummary$PhoneNumberArn": "

The Amazon Resource Name (ARN) of the phone number.

", - "ListPhoneNumbersSummary$TargetArn": "

The Amazon Resource Name (ARN) for Amazon Connect instances that phone numbers are claimed to.

", - "ListPhoneNumbersV2Request$TargetArn": "

The Amazon Resource Name (ARN) for Amazon Connect instances that phone numbers are claimed to. If TargetArn input is not provided, this API lists numbers claimed to all the Amazon Connect instances belonging to your account.

", + "ListPhoneNumbersSummary$TargetArn": "

The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution groups that phone numbers are claimed to.

", + "ListPhoneNumbersV2Request$TargetArn": "

The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution groups that phone numbers are claimed to. If TargetArn input is not provided, this API lists numbers claimed to all the Amazon Connect instances belonging to your account in the same Amazon Web Services Region as the request.

", "ListTagsForResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource.

", "PhoneNumberSummary$Arn": "

The Amazon Resource Name (ARN) of the phone number.

", "PromptSummary$Arn": "

The Amazon Resource Name (ARN) of the prompt.

", @@ -214,19 +221,20 @@ "QueueSummary$Arn": "

The Amazon Resource Name (ARN) of the queue.

", "QuickConnect$QuickConnectARN": "

The Amazon Resource Name (ARN) of the quick connect.

", "QuickConnectSummary$Arn": "

The Amazon Resource Name (ARN) of the quick connect.

", + "ReplicateInstanceResponse$Arn": "

The Amazon Resource Name (ARN) of the replicated instance.

", "ResourceInUseException$ResourceId": "

The identifier for the resource.

", "RoutingProfile$RoutingProfileArn": "

The Amazon Resource Name (ARN) of the routing profile.

", "RoutingProfileQueueConfigSummary$QueueArn": "

The Amazon Resource Name (ARN) of the queue.

", "RoutingProfileReference$Arn": "

The Amazon Resource Name (ARN) of the routing profile.

", "RoutingProfileSummary$Arn": "

The Amazon Resource Name (ARN) of the routing profile.

", - "SearchAvailablePhoneNumbersRequest$TargetArn": "

The Amazon Resource Name (ARN) for Amazon Connect instances that phone numbers are claimed to.

", + "SearchAvailablePhoneNumbersRequest$TargetArn": "

The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution groups that phone numbers are claimed to.

", "SecurityProfile$Arn": "

The Amazon Resource Name (ARN) for the secruity profile.

", "SecurityProfileSearchSummary$Arn": "

The Amazon Resource Name (ARN) of the security profile.

", "SecurityProfileSummary$Arn": "

The Amazon Resource Name (ARN) of the security profile.

", "TagResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource.

", "TransferContactResponse$ContactArn": "

The Amazon Resource Name (ARN) of the contact.

", "UntagResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource.

", - "UpdatePhoneNumberRequest$TargetArn": "

The Amazon Resource Name (ARN) for Amazon Connect instances that phone numbers are claimed to.

", + "UpdatePhoneNumberRequest$TargetArn": "

The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution groups that phone numbers are claimed to.

", "UpdatePhoneNumberResponse$PhoneNumberArn": "

The Amazon Resource Name (ARN) of the phone number.

", "UseCase$UseCaseArn": "

The Amazon Resource Name (ARN) for the use case.

", "User$Arn": "

The Amazon Resource Name (ARN) of the user account.

", @@ -245,7 +253,7 @@ "AfterContactWorkTimeLimit": { "base": null, "refs": { - "UserPhoneConfig$AfterContactWorkTimeLimit": "

The After Call Work (ACW) timeout setting, in seconds.

" + "UserPhoneConfig$AfterContactWorkTimeLimit": "

The After Call Work (ACW) timeout setting, in seconds.

When returned by a SearchUsers call, AfterContactWorkTimeLimit is returned in milliseconds.

" } }, "AgentContactReference": { @@ -532,7 +540,14 @@ "AvailableNumbersList": { "base": null, "refs": { - "SearchAvailablePhoneNumbersResponse$AvailableNumbersList": "

A list of available phone numbers that you can claim for your Amazon Connect instance.

" + "SearchAvailablePhoneNumbersResponse$AvailableNumbersList": "

A list of available phone numbers that you can claim to your Amazon Connect instance or traffic distribution group.

" + } + }, + "AwsRegion": { + "base": null, + "refs": { + "Distribution$Region": "

The Amazon Web Services Region where the traffic is distributed.

", + "ReplicateInstanceRequest$ReplicaRegion": "

The Amazon Web Services Region where to replicate the Amazon Connect instance.

" } }, "Boolean": { @@ -579,7 +594,7 @@ "base": null, "refs": { "UserData$AvailableSlotsByChannel": "

A map of available slots by channel. The key is a channel name. The value is an integer: the available number of slots.

", - "UserData$MaxSlotsByChannel": "

A map of maximum slots by channel. The key is a channel name. The value is an integer: the maximum number of slots. This is calculated from MediaConcurrency of the RoutingProfile assigned to the agent.

", + "UserData$MaxSlotsByChannel": "

A map of maximum slots by channel. The key is a channel name. The value is an integer: the maximum number of slots. This is calculated from MediaConcurrency of the RoutingProfile assigned to the agent.

", "UserData$ActiveSlotsByChannel": "

A map of active slots by channel. The key is a channel name. The value is an integer: the number of active slots.

" } }, @@ -636,26 +651,28 @@ } }, "ClaimedPhoneNumberSummary": { - "base": "

Information about a phone number that has been claimed to your Amazon Connect instance.

", + "base": "

Information about a phone number that has been claimed to your Amazon Connect instance or traffic distribution group.

", "refs": { - "DescribePhoneNumberResponse$ClaimedPhoneNumberSummary": "

Information about a phone number that's been claimed to your Amazon Connect instance.

" + "DescribePhoneNumberResponse$ClaimedPhoneNumberSummary": "

Information about a phone number that's been claimed to your Amazon Connect instance or traffic distribution group.

" } }, "ClientToken": { "base": null, "refs": { - "ClaimPhoneNumberRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", - "CreateContactFlowModuleRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", + "ClaimPhoneNumberRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

", + "CreateContactFlowModuleRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

", "CreateInstanceRequest$ClientToken": "

The idempotency token.

", - "CreateTaskTemplateRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", - "CreateVocabularyRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If a create request is received more than once with same client token, subsequent requests return the previous response without creating a vocabulary again.

", - "ReleasePhoneNumberRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", - "StartChatContactRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", - "StartContactStreamingRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", - "StartOutboundVoiceContactRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. The token is valid for 7 days after creation. If a contact is already started, the contact ID is returned.

", - "StartTaskContactRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", - "TransferContactRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

", - "UpdatePhoneNumberRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

" + "CreateTaskTemplateRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

", + "CreateTrafficDistributionGroupRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

", + "CreateVocabularyRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs. If a create request is received more than once with same client token, subsequent requests return the previous response without creating a vocabulary again.

", + "ReleasePhoneNumberRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

", + "ReplicateInstanceRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

", + "StartChatContactRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

", + "StartContactStreamingRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

", + "StartOutboundVoiceContactRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs. The token is valid for 7 days after creation. If a contact is already started, the contact ID is returned.

", + "StartTaskContactRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

", + "TransferContactRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

", + "UpdatePhoneNumberRequest$ClientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

" } }, "CommonNameLength127": { @@ -1044,6 +1061,16 @@ "refs": { } }, + "CreateTrafficDistributionGroupRequest": { + "base": null, + "refs": { + } + }, + "CreateTrafficDistributionGroupResponse": { + "base": null, + "refs": { + } + }, "CreateUseCaseRequest": { "base": null, "refs": { @@ -1208,6 +1235,16 @@ "refs": { } }, + "DeleteTrafficDistributionGroupRequest": { + "base": null, + "refs": { + } + }, + "DeleteTrafficDistributionGroupResponse": { + "base": null, + "refs": { + } + }, "DeleteUseCaseRequest": { "base": null, "refs": { @@ -1363,6 +1400,16 @@ "refs": { } }, + "DescribeTrafficDistributionGroupRequest": { + "base": null, + "refs": { + } + }, + "DescribeTrafficDistributionGroupResponse": { + "base": null, + "refs": { + } + }, "DescribeUserHierarchyGroupRequest": { "base": null, "refs": { @@ -1411,6 +1458,13 @@ "UpdateContactRequest$Description": "

The description of the contact.

" } }, + "Description250": { + "base": null, + "refs": { + "CreateTrafficDistributionGroupRequest$Description": "

A description for the traffic distribution group.

", + "TrafficDistributionGroup$Description": "

The description of the traffic distribution group.

" + } + }, "DestinationNotAllowedException": { "base": "

Outbound calls to the destination number are not allowed.

", "refs": { @@ -1428,7 +1482,8 @@ "refs": { "CreateInstanceRequest$InstanceAlias": "

The name for your instance.

", "Instance$InstanceAlias": "

The alias of instance.

", - "InstanceSummary$InstanceAlias": "

The alias of the instance.

" + "InstanceSummary$InstanceAlias": "

The alias of the instance.

", + "ReplicateInstanceRequest$ReplicaAlias": "

The alias for the replicated instance. The ReplicaAlias must be unique.

" } }, "DirectoryId": { @@ -1504,6 +1559,18 @@ "ParticipantDetails$DisplayName": "

Display name of the participant.

" } }, + "Distribution": { + "base": "

Information about a traffic distribution.

", + "refs": { + "DistributionList$member": null + } + }, + "DistributionList": { + "base": null, + "refs": { + "TelephonyConfig$Distributions": "

Information about traffic distributions.

" + } + }, "DuplicateResourceException": { "base": "

A resource with the specified name already exists.

", "refs": { @@ -1513,7 +1580,7 @@ "base": null, "refs": { "UserIdentityInfo$Email": "

The email address. If you are using SAML for identity management and include this parameter, an error is returned.

", - "UserIdentityInfo$SecondaryEmail": "

The user's secondary email address. If you provide a secondary email, the user receives email notifications -- other than password reset notifications -- to this email address instead of to their primary email address.

" + "UserIdentityInfo$SecondaryEmail": "

The user's secondary email address. If you provide a secondary email, the user receives email notifications - other than password reset notifications - to this email address instead of to their primary email address.

Pattern: (?=^.{0,265}$)[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,63}

" } }, "EmailReference": { @@ -1616,6 +1683,16 @@ "refs": { } }, + "GetTrafficDistributionRequest": { + "base": null, + "refs": { + } + }, + "GetTrafficDistributionResponse": { + "base": null, + "refs": { + } + }, "Grouping": { "base": null, "refs": { @@ -1904,6 +1981,13 @@ "DescribeInstanceResponse$Instance": "

The name of the instance.

" } }, + "InstanceArn": { + "base": null, + "refs": { + "TrafficDistributionGroup$InstanceArn": "

The Amazon Resource Name (ARN).

", + "TrafficDistributionGroupSummary$InstanceArn": "

The Amazon Resource Name (ARN) of the traffic distribution group.

" + } + }, "InstanceAttributeType": { "base": null, "refs": { @@ -2023,6 +2107,7 @@ "ListUserHierarchyGroupsRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", "ListUsersRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", "PutUserStatusRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "ReplicateInstanceResponse$Id": "

The identifier of the replicated instance. You can find the instanceId in the ARN of the instance. The replicated instance has the same identifier as the instance it was replicated from.

", "ResumeContactRecordingRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", "RoutingProfile$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", "SearchQueuesRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", @@ -2077,6 +2162,14 @@ "UpdateUserSecurityProfilesRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" } }, + "InstanceIdOrArn": { + "base": null, + "refs": { + "CreateTrafficDistributionGroupRequest$InstanceId": "

The identifier of the Amazon Connect instance that has been replicated. You can find the instanceId in the ARN of the instance.

", + "ListTrafficDistributionGroupsRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

", + "ReplicateInstanceRequest$InstanceId": "

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the instance.

" + } + }, "InstanceStatus": { "base": null, "refs": { @@ -2253,20 +2346,20 @@ "LexBotConfigList": { "base": null, "refs": { - "ListBotsResponse$LexBots": "

The names and Regions of the Amazon Lex or Amazon Lex V2 bots associated with the specified instance.

" + "ListBotsResponse$LexBots": "

The names and Amazon Web Services Regions of the Amazon Lex or Amazon Lex V2 bots associated with the specified instance.

" } }, "LexBotsList": { "base": null, "refs": { - "ListLexBotsResponse$LexBots": "

The names and Regions of the Amazon Lex bots associated with the specified instance.

" + "ListLexBotsResponse$LexBots": "

The names and Amazon Web Services Regions of the Amazon Lex bots associated with the specified instance.

" } }, "LexRegion": { "base": null, "refs": { - "DisassociateLexBotRequest$LexRegion": "

The Region in which the Amazon Lex bot has been created.

", - "LexBot$LexRegion": "

The Region that the Amazon Lex bot was created in.

" + "DisassociateLexBotRequest$LexRegion": "

The Amazon Web Services Region in which the Amazon Lex bot has been created.

", + "LexBot$LexRegion": "

The Amazon Web Services Region where the Amazon Lex bot was created.

" } }, "LexV2Bot": { @@ -2439,7 +2532,7 @@ } }, "ListPhoneNumbersSummary": { - "base": "

Information about phone numbers that have been claimed to your Amazon Connect instance.

", + "base": "

Information about phone numbers that have been claimed to your Amazon Connect instance or traffic distribution group.

", "refs": { "ListPhoneNumbersSummaryList$member": null } @@ -2447,7 +2540,7 @@ "ListPhoneNumbersSummaryList": { "base": null, "refs": { - "ListPhoneNumbersV2Response$ListPhoneNumbersSummaryList": "

Information about phone numbers that have been claimed to your Amazon Connect instances.

" + "ListPhoneNumbersV2Response$ListPhoneNumbersSummaryList": "

Information about phone numbers that have been claimed to your Amazon Connect instances or traffic distribution groups.

" } }, "ListPhoneNumbersV2Request": { @@ -2570,6 +2663,16 @@ "refs": { } }, + "ListTrafficDistributionGroupsRequest": { + "base": null, + "refs": { + } + }, + "ListTrafficDistributionGroupsResponse": { + "base": null, + "refs": { + } + }, "ListUseCasesRequest": { "base": "

Provides summary information about the use cases for the specified integration association.

", "refs": { @@ -2612,6 +2715,7 @@ "refs": { "ListInstanceStorageConfigsRequest$MaxResults": "

The maximum number of results to return per page.

", "ListInstancesRequest$MaxResults": "

The maximum number of results to return per page.

", + "ListTrafficDistributionGroupsRequest$MaxResults": "

The maximum number of results to return per page.

", "SearchAvailablePhoneNumbersRequest$MaxResults": "

The maximum number of results to return per page.

" } }, @@ -2707,6 +2811,7 @@ "ResourceConflictException$Message": null, "ResourceInUseException$Message": null, "ResourceNotFoundException$Message": "

The message about the resource.

", + "ResourceNotReadyException$Message": null, "ServiceQuotaExceededException$Message": null, "ThrottlingException$Message": null, "UserNotFoundException$Message": null @@ -2726,6 +2831,14 @@ "UpdateContactRequest$Name": "

The name of the contact.

" } }, + "Name128": { + "base": null, + "refs": { + "CreateTrafficDistributionGroupRequest$Name": "

The name for the traffic distribution group.

", + "TrafficDistributionGroup$Name": "

The name of the traffic distribution group.

", + "TrafficDistributionGroupSummary$Name": "

The name of the traffic distribution group.

" + } + }, "NextToken": { "base": null, "refs": { @@ -2783,6 +2896,8 @@ "ListSecurityProfilesResponse$NextToken": "

If there are additional results, this is the token for the next set of results.

", "ListTaskTemplatesRequest$NextToken": "

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

It is not expected that you set this because the value returned in the previous response is always null.

", "ListTaskTemplatesResponse$NextToken": "

If there are additional results, this is the token for the next set of results.

This is always returned as a null in the response.

", + "ListTrafficDistributionGroupsRequest$NextToken": "

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

", + "ListTrafficDistributionGroupsResponse$NextToken": "

If there are additional results, this is the token for the next set of results.

", "ListUseCasesRequest$NextToken": "

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

", "ListUseCasesResponse$NextToken": "

If there are additional results, this is the token for the next set of results.

", "ListUserHierarchyGroupsRequest$NextToken": "

The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results.

", @@ -2882,6 +2997,12 @@ "CreateUserRequest$Password": "

The password for the user account. A password is required if you are using Amazon Connect for identity management. Otherwise, it is an error to include a password.

" } }, + "Percentage": { + "base": null, + "refs": { + "Distribution$Percentage": "

The percentage of the traffic that is distributed, in increments of 10.

" + } + }, "PermissionsList": { "base": null, "refs": { @@ -2960,9 +3081,9 @@ } }, "PhoneNumberStatus": { - "base": "

The status of the phone number.

", + "base": "

The status of the phone number.

", "refs": { - "ClaimedPhoneNumberSummary$PhoneNumberStatus": "

The status of the phone number.

" + "ClaimedPhoneNumberSummary$PhoneNumberStatus": "

The status of the phone number.

You will not be billed for the phone number during the 1-day period if number claiming fails.

" } }, "PhoneNumberSummary": { @@ -3128,7 +3249,7 @@ "DisassociateQueueQuickConnectsRequest$QueueId": "

The identifier for the queue.

", "ListQueueQuickConnectsRequest$QueueId": "

The identifier for the queue.

", "Queue$QueueId": "

The identifier for the queue.

", - "QueueInfo$Id": "

The identifier of the agent who accepted the contact.

", + "QueueInfo$Id": "

The unique identifier for the queue.

", "QueueQuickConnectConfig$QueueId": "

The identifier for the queue.

", "QueueReference$Id": "

The identifier of the queue.

", "QueueSummary$Id": "

The identifier of the queue.

", @@ -3375,7 +3496,7 @@ "ReferenceType": { "base": null, "refs": { - "Reference$Type": "

The type of the reference.

", + "Reference$Type": "

The type of the reference. DATE must be of type Epoch timestamp.

", "ReferenceTypes$member": null } }, @@ -3402,6 +3523,16 @@ "refs": { } }, + "ReplicateInstanceRequest": { + "base": null, + "refs": { + } + }, + "ReplicateInstanceResponse": { + "base": null, + "refs": { + } + }, "RequiredFieldInfo": { "base": "

Information about a required field.

", "refs": { @@ -3429,6 +3560,11 @@ "refs": { } }, + "ResourceNotReadyException": { + "base": "

The resource is not ready.

", + "refs": { + } + }, "ResourceType": { "base": null, "refs": { @@ -3720,7 +3856,7 @@ "SecurityProfileSearchCriteria": { "base": "

The search criteria to be used to return security profiles.

", "refs": { - "SearchSecurityProfilesRequest$SearchCriteria": "

The search criteria to be used to return security profiles.

", + "SearchSecurityProfilesRequest$SearchCriteria": "

The search criteria to be used to return security profiles.

The currently supported value for FieldName: name

", "SecurityProfileSearchConditionList$member": null } }, @@ -3910,7 +4046,7 @@ } }, "StringCondition": { - "base": "

A leaf node condition which can be used to specify a string condition, for example, username = 'abc'.

", + "base": "

A leaf node condition which can be used to specify a string condition.

The currently supported value for FieldName: name

", "refs": { "QueueSearchCriteria$StringCondition": null, "RoutingProfileSearchCriteria$StringCondition": null, @@ -3990,6 +4126,7 @@ "CreateQuickConnectRequest$Tags": "

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

", "CreateRoutingProfileRequest$Tags": "

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

", "CreateSecurityProfileRequest$Tags": "

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

", + "CreateTrafficDistributionGroupRequest$Tags": "

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

", "CreateUseCaseRequest$Tags": "

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

", "CreateUserHierarchyGroupRequest$Tags": "

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

", "CreateUserRequest$Tags": "

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

", @@ -4004,6 +4141,7 @@ "SecurityProfile$Tags": "

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

", "SecurityProfileSearchSummary$Tags": "

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

", "TagResourceRequest$tags": "

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

", + "TrafficDistributionGroup$Tags": "

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

", "User$Tags": "

The tags.

", "UserSearchSummary$Tags": "

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

", "Vocabulary$Tags": "

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" @@ -4177,6 +4315,13 @@ "UpdateTaskTemplateResponse$Status": "

Marks a template as ACTIVE or INACTIVE for a task to refer to it. Tasks can only be created from ACTIVE templates. If a template is marked as INACTIVE, then a task that refers to this template cannot be created.

" } }, + "TelephonyConfig": { + "base": "

The distribution of traffic between the instance and its replicas.

", + "refs": { + "GetTrafficDistributionResponse$TelephonyConfig": "

The distribution of traffic between the instance and its replicas.

", + "UpdateTrafficDistributionRequest$TelephonyConfig": "

The distribution of traffic between the instance and its replica(s).

" + } + }, "Threshold": { "base": "

Contains information about the threshold for service level metrics.

", "refs": { @@ -4214,6 +4359,58 @@ "UpdateContactScheduleRequest$ScheduledTime": "

The timestamp, in Unix Epoch seconds format, at which to start running the inbound flow. The scheduled time cannot be in the past. It must be within up to 6 days in future.

" } }, + "TrafficDistributionGroup": { + "base": "

Information about a traffic distribution group.

", + "refs": { + "DescribeTrafficDistributionGroupResponse$TrafficDistributionGroup": "

Information about the traffic distribution group.

" + } + }, + "TrafficDistributionGroupArn": { + "base": null, + "refs": { + "CreateTrafficDistributionGroupResponse$Arn": "

The Amazon Resource Name (ARN) of the traffic distribution group.

", + "GetTrafficDistributionResponse$Arn": "

The Amazon Resource Name (ARN) of the traffic distribution group.

", + "TrafficDistributionGroup$Arn": "

The Amazon Resource Name (ARN) of the traffic distribution group.

", + "TrafficDistributionGroupSummary$Arn": "

The Amazon Resource Name (ARN) of the traffic distribution group.

" + } + }, + "TrafficDistributionGroupId": { + "base": null, + "refs": { + "CreateTrafficDistributionGroupResponse$Id": "

The identifier of the traffic distribution group. This can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. The ARN must be provided if the call is from the replicated Region.

", + "GetTrafficDistributionResponse$Id": "

The identifier of the traffic distribution group. This can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. The ARN must be provided if the call is from the replicated Region.

", + "TrafficDistributionGroup$Id": "

The identifier of the traffic distribution group. This can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. The ARN must be provided if the call is from the replicated Region.

", + "TrafficDistributionGroupSummary$Id": "

The identifier of the traffic distribution group. This can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. The ARN must be provided if the call is from the replicated Region.

" + } + }, + "TrafficDistributionGroupIdOrArn": { + "base": null, + "refs": { + "DeleteTrafficDistributionGroupRequest$TrafficDistributionGroupId": "

The identifier of the traffic distribution group. This can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. The ARN must be provided if the call is from the replicated Region.

", + "DescribeTrafficDistributionGroupRequest$TrafficDistributionGroupId": "

The identifier of the traffic distribution group. This can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. The ARN must be provided if the call is from the replicated Region.

", + "GetTrafficDistributionRequest$Id": "

The identifier of the traffic distribution group.

", + "UpdateTrafficDistributionRequest$Id": "

The identifier of the traffic distribution group. This can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. The ARN must be provided if the call is from the replicated Region.

" + } + }, + "TrafficDistributionGroupStatus": { + "base": null, + "refs": { + "TrafficDistributionGroup$Status": "

The status of the traffic distribution group.

", + "TrafficDistributionGroupSummary$Status": "

The status of the traffic distribution group.

" + } + }, + "TrafficDistributionGroupSummary": { + "base": "

Information about traffic distribution groups.

", + "refs": { + "TrafficDistributionGroupSummaryList$member": null + } + }, + "TrafficDistributionGroupSummaryList": { + "base": null, + "refs": { + "ListTrafficDistributionGroupsResponse$TrafficDistributionGroupSummaryList": "

A list of traffic distribution groups.

" + } + }, "TrafficType": { "base": null, "refs": { @@ -4432,6 +4629,16 @@ "refs": { } }, + "UpdateTrafficDistributionRequest": { + "base": null, + "refs": { + } + }, + "UpdateTrafficDistributionResponse": { + "base": null, + "refs": { + } + }, "UpdateUserHierarchyGroupNameRequest": { "base": null, "refs": { @@ -4501,7 +4708,7 @@ } }, "User": { - "base": "

Contains information about a user account for a Amazon Connect instance.

", + "base": "

Contains information about a user account for an Amazon Connect instance.

", "refs": { "DescribeUserResponse$User": "

Information about the user account and configuration settings.

" } @@ -4580,7 +4787,7 @@ "UserReference": { "base": "

Information about the user.

", "refs": { - "UserData$User": "

Information about the user for the data that is returned. It contains resourceId and ARN of the user.

" + "UserData$User": "

Information about the user for the data that is returned. It contains the resourceId and ARN of the user.

" } }, "UserSearchConditionList": { diff --git a/models/apis/connect/2017-08-08/endpoint-rule-set-1.json b/models/apis/connect/2017-08-08/endpoint-rule-set-1.json new file mode 100644 index 0000000000..d8c233102d --- /dev/null +++ b/models/apis/connect/2017-08-08/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://connect-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://connect-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://connect.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://connect.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/models/apis/connect/2017-08-08/endpoint-tests-1.json b/models/apis/connect/2017-08-08/endpoint-tests-1.json new file mode 100644 index 0000000000..c974fdf4f4 --- /dev/null +++ b/models/apis/connect/2017-08-08/endpoint-tests-1.json @@ -0,0 +1,667 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://connect.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://connect.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/connect/2017-08-08/paginators-1.json b/models/apis/connect/2017-08-08/paginators-1.json index fbe0f4a87d..43649af9ed 100644 --- a/models/apis/connect/2017-08-08/paginators-1.json +++ b/models/apis/connect/2017-08-08/paginators-1.json @@ -170,6 +170,12 @@ "output_token": "NextToken", "result_key": "TaskTemplates" }, + "ListTrafficDistributionGroups": { + "input_token": "NextToken", + "limit_key": "MaxResults", + "output_token": "NextToken", + "result_key": "TrafficDistributionGroupSummaryList" + }, "ListUseCases": { "input_token": "NextToken", "limit_key": "MaxResults", diff --git a/models/apis/eventbridge/2015-10-07/api-2.json b/models/apis/eventbridge/2015-10-07/api-2.json index 37e24daa80..17fc2747b5 100644 --- a/models/apis/eventbridge/2015-10-07/api-2.json +++ b/models/apis/eventbridge/2015-10-07/api-2.json @@ -2397,7 +2397,10 @@ "required":["Entries"], "members":{ "Entries":{"shape":"PutEventsRequestEntryList"}, - "EndpointId":{"shape":"EndpointId"} + "EndpointId":{ + "shape":"EndpointId", + "contextParam":{"name":"EndpointId"} + } } }, "PutEventsRequestEntry":{ diff --git a/models/apis/eventbridge/2015-10-07/endpoint-rule-set-1.json b/models/apis/eventbridge/2015-10-07/endpoint-rule-set-1.json new file mode 100644 index 0000000000..0e1700ad68 --- /dev/null +++ b/models/apis/eventbridge/2015-10-07/endpoint-rule-set-1.json @@ -0,0 +1,538 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + }, + "EndpointId": { + "required": false, + "documentation": "Operation parameter for EndpointId", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "EndpointId" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "EndpointId" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingRegionSet": [ + "*" + ], + "signingName": "events" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{EndpointId}.endpoint.events.{PartitionResult#dualStackDnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingRegionSet": [ + "*" + ], + "signingName": "events" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://{EndpointId}.endpoint.events.{PartitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingRegionSet": [ + "*" + ], + "signingName": "events" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid Configuration: FIPS is not supported with EventBridge multi-region endpoints.", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "EndpointId must be a valid host label.", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://events-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-west-1" + ] + } + ], + "endpoint": { + "url": "https://events.us-gov-west-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-gov-east-1" + ] + } + ], + "endpoint": { + "url": "https://events.us-gov-east-1.amazonaws.com", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://events-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://events.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://events.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/models/apis/eventbridge/2015-10-07/endpoint-tests-1.json b/models/apis/eventbridge/2015-10-07/endpoint-tests-1.json new file mode 100644 index 0000000000..cda2e5130f --- /dev/null +++ b/models/apis/eventbridge/2015-10-07/endpoint-tests-1.json @@ -0,0 +1,1941 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.ap-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.eu-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.eu-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.eu-south-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-south-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.eu-south-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-south-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.us-gov-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.me-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.me-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-iso-west-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.eu-central-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.eu-central-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.us-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.af-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region af-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.af-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "af-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.eu-north-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.eu-north-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.eu-west-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.eu-west-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-3", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.ap-northeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-northeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.me-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region me-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.me-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "me-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.sa-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region sa-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.sa-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "sa-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.ap-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-north-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-iso-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.ap-southeast-3.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-3 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-southeast-3.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-3", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-4", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-4", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.ap-southeast-4.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-4", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-4 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.ap-southeast-4.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-4", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.us-east-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-east-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-2", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events-fips.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": true, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://events.cn-northwest-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": true + } + }, + { + "documentation": "For region cn-northwest-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.cn-northwest-1.amazonaws.com.cn" + } + }, + "params": { + "UseFIPS": false, + "Region": "cn-northwest-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://events.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-isob-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Valid endpointId with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingName": "events", + "name": "sigv4a", + "signingRegionSet": [ + "*" + ] + } + ] + }, + "url": "https://abc123.456def.endpoint.events.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "PutEvents", + "operationParams": { + "EndpointId": "abc123.456def", + "Entries": [ + { + "DetailType": "detailType", + "Detail": "{ \"test\": [\"test\"] }", + "EventBusName": "my-sdk-app" + } + ] + } + } + ], + "params": { + "EndpointId": "abc123.456def", + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "Valid EndpointId with dualstack disabled and fips enabled", + "expect": { + "error": "Invalid Configuration: FIPS is not supported with EventBridge multi-region endpoints." + }, + "params": { + "EndpointId": "abc123.456def", + "UseDualStack": false, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "Valid EndpointId with dualstack enabled and fips enabled", + "expect": { + "error": "Invalid Configuration: FIPS is not supported with EventBridge multi-region endpoints." + }, + "params": { + "EndpointId": "abc123.456def", + "UseDualStack": true, + "UseFIPS": true, + "Region": "us-east-1" + } + }, + { + "documentation": "Invalid EndpointId", + "expect": { + "error": "EndpointId must be a valid host label." + }, + "params": { + "EndpointId": "badactor.com?foo=bar", + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "Invalid EndpointId (empty)", + "expect": { + "error": "EndpointId must be a valid host label." + }, + "params": { + "EndpointId": "", + "UseDualStack": false, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "Valid endpointId with fips disabled and dualstack true", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingName": "events", + "name": "sigv4a", + "signingRegionSet": [ + "*" + ] + } + ] + }, + "url": "https://abc123.456def.endpoint.events.api.aws" + } + }, + "params": { + "EndpointId": "abc123.456def", + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1" + } + }, + { + "documentation": "Valid endpointId with custom sdk endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "signingName": "events", + "name": "sigv4a", + "signingRegionSet": [ + "*" + ] + } + ] + }, + "url": "https://example.com" + } + }, + "params": { + "EndpointId": "abc123.456def", + "UseDualStack": true, + "UseFIPS": false, + "Region": "us-east-1", + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/managedblockchain/2018-09-24/api-2.json b/models/apis/managedblockchain/2018-09-24/api-2.json index 037b8a9a60..ed25fbc91d 100644 --- a/models/apis/managedblockchain/2018-09-24/api-2.json +++ b/models/apis/managedblockchain/2018-09-24/api-2.json @@ -13,6 +13,23 @@ "uid":"managedblockchain-2018-09-24" }, "operations":{ + "CreateAccessor":{ + "name":"CreateAccessor", + "http":{ + "method":"POST", + "requestUri":"/accessors" + }, + "input":{"shape":"CreateAccessorInput"}, + "output":{"shape":"CreateAccessorOutput"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceAlreadyExistsException"}, + {"shape":"ThrottlingException"}, + {"shape":"ResourceLimitExceededException"}, + {"shape":"InternalServiceErrorException"} + ] + }, "CreateMember":{ "name":"CreateMember", "http":{ @@ -89,6 +106,22 @@ {"shape":"TooManyTagsException"} ] }, + "DeleteAccessor":{ + "name":"DeleteAccessor", + "http":{ + "method":"DELETE", + "requestUri":"/accessors/{AccessorId}" + }, + "input":{"shape":"DeleteAccessorInput"}, + "output":{"shape":"DeleteAccessorOutput"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceErrorException"} + ] + }, "DeleteMember":{ "name":"DeleteMember", "http":{ @@ -123,6 +156,22 @@ {"shape":"InternalServiceErrorException"} ] }, + "GetAccessor":{ + "name":"GetAccessor", + "http":{ + "method":"GET", + "requestUri":"/accessors/{AccessorId}" + }, + "input":{"shape":"GetAccessorInput"}, + "output":{"shape":"GetAccessorOutput"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceErrorException"} + ] + }, "GetMember":{ "name":"GetMember", "http":{ @@ -187,6 +236,21 @@ {"shape":"InternalServiceErrorException"} ] }, + "ListAccessors":{ + "name":"ListAccessors", + "http":{ + "method":"GET", + "requestUri":"/accessors" + }, + "input":{"shape":"ListAccessorsInput"}, + "output":{"shape":"ListAccessorsOutput"}, + "errors":[ + {"shape":"InvalidRequestException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"InternalServiceErrorException"} + ] + }, "ListInvitations":{ "name":"ListInvitations", "http":{ @@ -402,6 +466,54 @@ "error":{"httpStatusCode":403}, "exception":true }, + "Accessor":{ + "type":"structure", + "members":{ + "Id":{"shape":"ResourceIdString"}, + "Type":{"shape":"AccessorType"}, + "BillingToken":{"shape":"AccessorBillingTokenString"}, + "Status":{"shape":"AccessorStatus"}, + "CreationDate":{"shape":"Timestamp"}, + "Arn":{"shape":"ArnString"} + } + }, + "AccessorBillingTokenString":{ + "type":"string", + "max":42, + "min":42 + }, + "AccessorListMaxResults":{ + "type":"integer", + "box":true, + "max":50, + "min":1 + }, + "AccessorStatus":{ + "type":"string", + "enum":[ + "AVAILABLE", + "PENDING_DELETION", + "DELETED" + ] + }, + "AccessorSummary":{ + "type":"structure", + "members":{ + "Id":{"shape":"ResourceIdString"}, + "Type":{"shape":"AccessorType"}, + "Status":{"shape":"AccessorStatus"}, + "CreationDate":{"shape":"Timestamp"}, + "Arn":{"shape":"ArnString"} + } + }, + "AccessorSummaryList":{ + "type":"list", + "member":{"shape":"AccessorSummary"} + }, + "AccessorType":{ + "type":"string", + "enum":["BILLING_TOKEN"] + }, "ApprovalThresholdPolicy":{ "type":"structure", "members":{ @@ -422,6 +534,27 @@ "max":64, "min":1 }, + "CreateAccessorInput":{ + "type":"structure", + "required":[ + "ClientRequestToken", + "AccessorType" + ], + "members":{ + "ClientRequestToken":{ + "shape":"ClientRequestTokenString", + "idempotencyToken":true + }, + "AccessorType":{"shape":"AccessorType"} + } + }, + "CreateAccessorOutput":{ + "type":"structure", + "members":{ + "AccessorId":{"shape":"ResourceIdString"}, + "BillingToken":{"shape":"AccessorBillingTokenString"} + } + }, "CreateMemberInput":{ "type":"structure", "required":[ @@ -540,6 +673,22 @@ "ProposalId":{"shape":"ResourceIdString"} } }, + "DeleteAccessorInput":{ + "type":"structure", + "required":["AccessorId"], + "members":{ + "AccessorId":{ + "shape":"ResourceIdString", + "location":"uri", + "locationName":"AccessorId" + } + } + }, + "DeleteAccessorOutput":{ + "type":"structure", + "members":{ + } + }, "DeleteMemberInput":{ "type":"structure", "required":[ @@ -621,6 +770,23 @@ "max":8, "min":1 }, + "GetAccessorInput":{ + "type":"structure", + "required":["AccessorId"], + "members":{ + "AccessorId":{ + "shape":"ResourceIdString", + "location":"uri", + "locationName":"AccessorId" + } + } + }, + "GetAccessorOutput":{ + "type":"structure", + "members":{ + "Accessor":{"shape":"Accessor"} + } + }, "GetMemberInput":{ "type":"structure", "required":[ @@ -789,6 +955,28 @@ "type":"boolean", "box":true }, + "ListAccessorsInput":{ + "type":"structure", + "members":{ + "MaxResults":{ + "shape":"AccessorListMaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "NextToken":{ + "shape":"PaginationToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListAccessorsOutput":{ + "type":"structure", + "members":{ + "Accessors":{"shape":"AccessorSummaryList"}, + "NextToken":{"shape":"PaginationToken"} + } + }, "ListInvitationsInput":{ "type":"structure", "members":{ diff --git a/models/apis/managedblockchain/2018-09-24/docs-2.json b/models/apis/managedblockchain/2018-09-24/docs-2.json index d51f47fb75..cb2643ed00 100644 --- a/models/apis/managedblockchain/2018-09-24/docs-2.json +++ b/models/apis/managedblockchain/2018-09-24/docs-2.json @@ -1,37 +1,87 @@ { "version": "2.0", - "service": "

Amazon Managed Blockchain is a fully managed service for creating and managing blockchain networks using open-source frameworks. Blockchain allows you to build applications where multiple parties can securely and transparently run transactions and share data without the need for a trusted, central authority.

Managed Blockchain supports the Hyperledger Fabric and Ethereum open-source frameworks. Because of fundamental differences between the frameworks, some API actions or data types may only apply in the context of one framework and not the other. For example, actions related to Hyperledger Fabric network members such as CreateMember and DeleteMember do not apply to Ethereum.

The description for each action indicates the framework or frameworks to which it applies. Data types and properties that apply only in the context of a particular framework are similarly indicated.

", + "service": "

Amazon Managed Blockchain is a fully managed service for creating and managing blockchain networks using open-source frameworks. Blockchain allows you to build applications where multiple parties can securely and transparently run transactions and share data without the need for a trusted, central authority.

Managed Blockchain supports the Hyperledger Fabric and Ethereum open-source frameworks. Because of fundamental differences between the frameworks, some API actions or data types may only apply in the context of one framework and not the other. For example, actions related to Hyperledger Fabric network members such as CreateMember and DeleteMember don't apply to Ethereum.

The description for each action indicates the framework or frameworks to which it applies. Data types and properties that apply only in the context of a particular framework are similarly indicated.

", "operations": { + "CreateAccessor": "

The token based access feature is in preview release for Ethereum on Amazon Managed Blockchain and is subject to change. We recommend that you use this feature only with test scenarios, and not in production environments.

Creates a new accessor for use with Managed Blockchain Ethereum nodes. An accessor object is a container that has the information required for token based access to your Ethereum nodes.

", "CreateMember": "

Creates a member within a Managed Blockchain network.

Applies only to Hyperledger Fabric.

", "CreateNetwork": "

Creates a new blockchain network using Amazon Managed Blockchain.

Applies only to Hyperledger Fabric.

", "CreateNode": "

Creates a node on the specified blockchain network.

Applies to Hyperledger Fabric and Ethereum.

", "CreateProposal": "

Creates a proposal for a change to the network that other members of the network can vote on, for example, a proposal to add a new member to the network. Any member can create a proposal.

Applies only to Hyperledger Fabric.

", - "DeleteMember": "

Deletes a member. Deleting a member removes the member and all associated resources from the network. DeleteMember can only be called for a specified MemberId if the principal performing the action is associated with the AWS account that owns the member. In all other cases, the DeleteMember action is carried out as the result of an approved proposal to remove a member. If MemberId is the last member in a network specified by the last AWS account, the network is deleted also.

Applies only to Hyperledger Fabric.

", - "DeleteNode": "

Deletes a node that your AWS account owns. All data on the node is lost and cannot be recovered.

Applies to Hyperledger Fabric and Ethereum.

", + "DeleteAccessor": "

The token based access feature is in preview release for Ethereum on Amazon Managed Blockchain and is subject to change. We recommend that you use this feature only with test scenarios, and not in production environments.

Deletes an accessor that your Amazon Web Services account owns. An accessor object is a container that has the information required for token based access to your Ethereum nodes including, the BILLING_TOKEN. After an accessor is deleted, the status of the accessor changes from AVAILABLE to PENDING_DELETION. An accessor in the PENDING_DELETION state can’t be used for new WebSocket requests or HTTP requests. However, WebSocket connections that are initiated while the accessor was in the AVAILABLE state remain open until they expire (up to 2 hours).

", + "DeleteMember": "

Deletes a member. Deleting a member removes the member and all associated resources from the network. DeleteMember can only be called for a specified MemberId if the principal performing the action is associated with the Amazon Web Services account that owns the member. In all other cases, the DeleteMember action is carried out as the result of an approved proposal to remove a member. If MemberId is the last member in a network specified by the last Amazon Web Services account, the network is deleted also.

Applies only to Hyperledger Fabric.

", + "DeleteNode": "

Deletes a node that your Amazon Web Services account owns. All data on the node is lost and cannot be recovered.

Applies to Hyperledger Fabric and Ethereum.

", + "GetAccessor": "

The token based access feature is in preview release for Ethereum on Amazon Managed Blockchain and is subject to change. We recommend that you use this feature only with test scenarios, and not in production environments.

Returns detailed information about an accessor. An accessor object is a container that has the information required for token based access to your Ethereum nodes.

", "GetMember": "

Returns detailed information about a member.

Applies only to Hyperledger Fabric.

", "GetNetwork": "

Returns detailed information about a network.

Applies to Hyperledger Fabric and Ethereum.

", "GetNode": "

Returns detailed information about a node.

Applies to Hyperledger Fabric and Ethereum.

", "GetProposal": "

Returns detailed information about a proposal.

Applies only to Hyperledger Fabric.

", - "ListInvitations": "

Returns a list of all invitations for the current AWS account.

Applies only to Hyperledger Fabric.

", + "ListAccessors": "

The token based access feature is in preview release for Ethereum on Amazon Managed Blockchain and is subject to change. We recommend that you use this feature only with test scenarios, and not in production environments.

Returns a list of the accessors and their properties. Accessor objects are containers that have the information required for token based access to your Ethereum nodes.

", + "ListInvitations": "

Returns a list of all invitations for the current Amazon Web Services account.

Applies only to Hyperledger Fabric.

", "ListMembers": "

Returns a list of the members in a network and properties of their configurations.

Applies only to Hyperledger Fabric.

", - "ListNetworks": "

Returns information about the networks in which the current AWS account participates.

Applies to Hyperledger Fabric and Ethereum.

", + "ListNetworks": "

Returns information about the networks in which the current Amazon Web Services account participates.

Applies to Hyperledger Fabric and Ethereum.

", "ListNodes": "

Returns information about the nodes within a network.

Applies to Hyperledger Fabric and Ethereum.

", "ListProposalVotes": "

Returns the list of votes for a specified proposal, including the value of each vote and the unique identifier of the member that cast the vote.

Applies only to Hyperledger Fabric.

", "ListProposals": "

Returns a list of proposals for the network.

Applies only to Hyperledger Fabric.

", "ListTagsForResource": "

Returns a list of tags for the specified resource. Each tag consists of a key and optional value.

For more information about tags, see Tagging Resources in the Amazon Managed Blockchain Ethereum Developer Guide, or Tagging Resources in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide.

", - "RejectInvitation": "

Rejects an invitation to join a network. This action can be called by a principal in an AWS account that has received an invitation to create a member and join a network.

Applies only to Hyperledger Fabric.

", + "RejectInvitation": "

Rejects an invitation to join a network. This action can be called by a principal in an Amazon Web Services account that has received an invitation to create a member and join a network.

Applies only to Hyperledger Fabric.

", "TagResource": "

Adds or overwrites the specified tags for the specified Amazon Managed Blockchain resource. Each tag consists of a key and optional value.

When you specify a tag key that already exists, the tag value is overwritten with the new value. Use UntagResource to remove tag keys.

A resource can have up to 50 tags. If you try to create more than 50 tags for a resource, your request fails and returns an error.

For more information about tags, see Tagging Resources in the Amazon Managed Blockchain Ethereum Developer Guide, or Tagging Resources in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide.

", "UntagResource": "

Removes the specified tags from the Amazon Managed Blockchain resource.

For more information about tags, see Tagging Resources in the Amazon Managed Blockchain Ethereum Developer Guide, or Tagging Resources in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide.

", "UpdateMember": "

Updates a member configuration with new parameters.

Applies only to Hyperledger Fabric.

", "UpdateNode": "

Updates a node configuration with new parameters.

Applies only to Hyperledger Fabric.

", - "VoteOnProposal": "

Casts a vote for a specified ProposalId on behalf of a member. The member to vote as, specified by VoterMemberId, must be in the same AWS account as the principal that calls the action.

Applies only to Hyperledger Fabric.

" + "VoteOnProposal": "

Casts a vote for a specified ProposalId on behalf of a member. The member to vote as, specified by VoterMemberId, must be in the same Amazon Web Services account as the principal that calls the action.

Applies only to Hyperledger Fabric.

" }, "shapes": { "AccessDeniedException": { - "base": "

You do not have sufficient access to perform this action.

", + "base": "

You don't have sufficient access to perform this action.

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

The token based access feature is in preview release for Ethereum on Amazon Managed Blockchain and is subject to change. We recommend that you use this feature only with test scenarios, and not in production environments.

The properties of the Accessor.

", + "refs": { + "GetAccessorOutput$Accessor": "

The properties of the accessor.

" + } + }, + "AccessorBillingTokenString": { + "base": null, + "refs": { + "Accessor$BillingToken": "

The billing token is a property of the accessor. Use this token to make Ethereum API calls to your Ethereum node. The billing token is used to track your accessor object for billing Ethereum API requests made to your Ethereum nodes.

", + "CreateAccessorOutput$BillingToken": "

The billing token is a property of the Accessor. Use this token to make Ethereum API calls to your Ethereum node. The billing token is used to track your accessor object for billing Ethereum API requests made to your Ethereum nodes.

" + } + }, + "AccessorListMaxResults": { + "base": null, + "refs": { + "ListAccessorsInput$MaxResults": "

The maximum number of accessors to list.

" + } + }, + "AccessorStatus": { + "base": null, + "refs": { + "Accessor$Status": "

The current status of the accessor.

", + "AccessorSummary$Status": "

The current status of the accessor.

" + } + }, + "AccessorSummary": { + "base": "

The token based access feature is in preview release for Ethereum on Amazon Managed Blockchain and is subject to change. We recommend that you use this feature only with test scenarios, and not in production environments.

A summary of accessor properties.

", + "refs": { + "AccessorSummaryList$member": null + } + }, + "AccessorSummaryList": { + "base": null, + "refs": { + "ListAccessorsOutput$Accessors": "

An array of AccessorSummary objects that contain configuration properties for each accessor.

" + } + }, + "AccessorType": { + "base": null, + "refs": { + "Accessor$Type": "

The type of the accessor.

Currently accessor type is restricted to BILLING_TOKEN.

", + "AccessorSummary$Type": "

The type of the accessor.

Currently accessor type is restricted to BILLING_TOKEN.

", + "CreateAccessorInput$AccessorType": "

The type of accessor.

Currently accessor type is restricted to BILLING_TOKEN.

" + } + }, "ApprovalThresholdPolicy": { "base": "

A policy type that defines the voting rules for the network. The rules decide if a proposal is approved. Approval may be based on criteria such as the percentage of YES votes and the duration of the proposal. The policy applies to all proposals and is specified when the network is created.

Applies only to Hyperledger Fabric.

", "refs": { @@ -41,21 +91,23 @@ "ArnString": { "base": null, "refs": { - "Invitation$Arn": "

The Amazon Resource Name (ARN) of the invitation. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the AWS General Reference.

", - "ListTagsForResourceRequest$ResourceArn": "

The Amazon Resource Name (ARN) of the resource. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the AWS General Reference.

", - "Member$Arn": "

The Amazon Resource Name (ARN) of the member. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the AWS General Reference.

", - "MemberConfiguration$KmsKeyArn": "

The Amazon Resource Name (ARN) of the customer managed key in AWS Key Management Service (AWS KMS) to use for encryption at rest in the member. This parameter is inherited by any nodes that this member creates.

Use one of the following options to specify this parameter:

", - "MemberSummary$Arn": "

The Amazon Resource Name (ARN) of the member. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the AWS General Reference.

", - "Network$Arn": "

The Amazon Resource Name (ARN) of the network. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the AWS General Reference.

", - "NetworkSummary$Arn": "

The Amazon Resource Name (ARN) of the network. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the AWS General Reference.

", - "Node$Arn": "

The Amazon Resource Name (ARN) of the node. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the AWS General Reference.

", - "NodeSummary$Arn": "

The Amazon Resource Name (ARN) of the node. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the AWS General Reference.

", - "Proposal$Arn": "

The Amazon Resource Name (ARN) of the proposal. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the AWS General Reference.

", - "ProposalSummary$Arn": "

The Amazon Resource Name (ARN) of the proposal. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the AWS General Reference.

", - "ResourceNotFoundException$ResourceName": "

A requested resource does not exist. It may have been deleted or referenced inaccurately.

", - "TagResourceRequest$ResourceArn": "

The Amazon Resource Name (ARN) of the resource. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the AWS General Reference.

", + "Accessor$Arn": "

The Amazon Resource Name (ARN) of the accessor. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "AccessorSummary$Arn": "

The Amazon Resource Name (ARN) of the accessor. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "Invitation$Arn": "

The Amazon Resource Name (ARN) of the invitation. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "ListTagsForResourceRequest$ResourceArn": "

The Amazon Resource Name (ARN) of the resource. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "Member$Arn": "

The Amazon Resource Name (ARN) of the member. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "MemberConfiguration$KmsKeyArn": "

The Amazon Resource Name (ARN) of the customer managed key in Key Management Service (KMS) to use for encryption at rest in the member. This parameter is inherited by any nodes that this member creates. For more information, see Encryption at Rest in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide.

Use one of the following options to specify this parameter:

", + "MemberSummary$Arn": "

The Amazon Resource Name (ARN) of the member. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "Network$Arn": "

The Amazon Resource Name (ARN) of the network. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "NetworkSummary$Arn": "

The Amazon Resource Name (ARN) of the network. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "Node$Arn": "

The Amazon Resource Name (ARN) of the node. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "NodeSummary$Arn": "

The Amazon Resource Name (ARN) of the node. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "Proposal$Arn": "

The Amazon Resource Name (ARN) of the proposal. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "ProposalSummary$Arn": "

The Amazon Resource Name (ARN) of the proposal. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", + "ResourceNotFoundException$ResourceName": "

A requested resource doesn't exist. It may have been deleted or referenced inaccurately.

", + "TagResourceRequest$ResourceArn": "

The Amazon Resource Name (ARN) of the resource. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

", "TooManyTagsException$ResourceName": "

", - "UntagResourceRequest$ResourceArn": "

The Amazon Resource Name (ARN) of the resource. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the AWS General Reference.

" + "UntagResourceRequest$ResourceArn": "

The Amazon Resource Name (ARN) of the resource. For more information about ARNs and their format, see Amazon Resource Names (ARNs) in the Amazon Web Services General Reference.

" } }, "AvailabilityZoneString": { @@ -69,10 +121,21 @@ "ClientRequestTokenString": { "base": null, "refs": { - "CreateMemberInput$ClientRequestToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time. This identifier is required only if you make a service request directly using an HTTP client. It is generated automatically if you use an AWS SDK or the AWS CLI.

", - "CreateNetworkInput$ClientRequestToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time. This identifier is required only if you make a service request directly using an HTTP client. It is generated automatically if you use an AWS SDK or the AWS CLI.

", - "CreateNodeInput$ClientRequestToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time. This identifier is required only if you make a service request directly using an HTTP client. It is generated automatically if you use an AWS SDK or the AWS CLI.

", - "CreateProposalInput$ClientRequestToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time. This identifier is required only if you make a service request directly using an HTTP client. It is generated automatically if you use an AWS SDK or the AWS CLI.

" + "CreateAccessorInput$ClientRequestToken": "

This is a unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than once. This identifier is required only if you make a service request directly using an HTTP client. It is generated automatically if you use an Amazon Web Services SDK or the Amazon Web Services CLI.

", + "CreateMemberInput$ClientRequestToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time. This identifier is required only if you make a service request directly using an HTTP client. It is generated automatically if you use an Amazon Web Services SDK or the CLI.

", + "CreateNetworkInput$ClientRequestToken": "

This is a unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than once. This identifier is required only if you make a service request directly using an HTTP client. It is generated automatically if you use an Amazon Web Services SDK or the Amazon Web Services CLI.

", + "CreateNodeInput$ClientRequestToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time. This identifier is required only if you make a service request directly using an HTTP client. It is generated automatically if you use an Amazon Web Services SDK or the CLI.

", + "CreateProposalInput$ClientRequestToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than one time. This identifier is required only if you make a service request directly using an HTTP client. It is generated automatically if you use an Amazon Web Services SDK or the CLI.

" + } + }, + "CreateAccessorInput": { + "base": null, + "refs": { + } + }, + "CreateAccessorOutput": { + "base": null, + "refs": { } }, "CreateMemberInput": { @@ -115,6 +178,16 @@ "refs": { } }, + "DeleteAccessorInput": { + "base": null, + "refs": { + } + }, + "DeleteAccessorOutput": { + "base": null, + "refs": { + } + }, "DeleteMemberInput": { "base": null, "refs": { @@ -185,6 +258,16 @@ "NetworkSummary$FrameworkVersion": "

The version of the blockchain framework that the network uses.

" } }, + "GetAccessorInput": { + "base": null, + "refs": { + } + }, + "GetAccessorOutput": { + "base": null, + "refs": { + } + }, "GetMemberInput": { "base": null, "refs": { @@ -259,7 +342,7 @@ } }, "Invitation": { - "base": "

An invitation to an AWS account to create a member and join the network.

Applies only to Hyperledger Fabric.

", + "base": "

An invitation to an Amazon Web Services account to create a member and join the network.

Applies only to Hyperledger Fabric.

", "refs": { "InvitationList$member": null } @@ -273,11 +356,11 @@ "InvitationStatus": { "base": null, "refs": { - "Invitation$Status": "

The status of the invitation:

" + "Invitation$Status": "

The status of the invitation:

" } }, "InviteAction": { - "base": "

An action to invite a specific AWS account to create a member and join the network. The InviteAction is carried out when a Proposal is APPROVED.

Applies only to Hyperledger Fabric.

", + "base": "

An action to invite a specific Amazon Web Services account to create a member and join the network. The InviteAction is carried out when a Proposal is APPROVED.

Applies only to Hyperledger Fabric.

", "refs": { "InviteActionList$member": null } @@ -285,14 +368,24 @@ "InviteActionList": { "base": null, "refs": { - "ProposalActions$Invitations": "

The actions to perform for an APPROVED proposal to invite an AWS account to create a member and join the network.

" + "ProposalActions$Invitations": "

The actions to perform for an APPROVED proposal to invite an Amazon Web Services account to create a member and join the network.

" } }, "IsOwned": { "base": null, "refs": { - "ListMembersInput$IsOwned": "

An optional Boolean value. If provided, the request is limited either to members that the current AWS account owns (true) or that other AWS accounts own (false). If omitted, all members are listed.

", - "MemberSummary$IsOwned": "

An indicator of whether the member is owned by your AWS account or a different AWS account.

" + "ListMembersInput$IsOwned": "

An optional Boolean value. If provided, the request is limited either to members that the current Amazon Web Services account owns (true) or that other Amazon Web Services accountsn own (false). If omitted, all members are listed.

", + "MemberSummary$IsOwned": "

An indicator of whether the member is owned by your Amazon Web Services account or a different Amazon Web Services account.

" + } + }, + "ListAccessorsInput": { + "base": null, + "refs": { + } + }, + "ListAccessorsOutput": { + "base": null, + "refs": { } }, "ListInvitationsInput": { @@ -440,8 +533,8 @@ "base": null, "refs": { "ListMembersInput$Status": "

An optional status specifier. If provided, only members currently in this status are listed.

", - "Member$Status": "

The status of a member.

", - "MemberSummary$Status": "

The status of the member.

" + "Member$Status": "

The status of a member.

", + "MemberSummary$Status": "

The status of the member.

" } }, "MemberSummary": { @@ -592,7 +685,7 @@ "base": null, "refs": { "ListNodesInput$Status": "

An optional status specifier. If provided, only nodes currently in this status are listed.

", - "Node$Status": "

The status of the node.

", + "Node$Status": "

The status of the node.

", "NodeSummary$Status": "

The status of the node.

" } }, @@ -621,6 +714,8 @@ "PaginationToken": { "base": null, "refs": { + "ListAccessorsInput$NextToken": "

The pagination token that indicates the next set of results to retrieve.

", + "ListAccessorsOutput$NextToken": "

The pagination token that indicates the next set of results to retrieve.

", "ListInvitationsInput$NextToken": "

The pagination token that indicates the next set of results to retrieve.

", "ListInvitationsOutput$NextToken": "

The pagination token that indicates the next set of results to retrieve.

", "ListMembersInput$NextToken": "

The pagination token that indicates the next set of results to retrieve.

", @@ -644,7 +739,7 @@ "PrincipalString": { "base": null, "refs": { - "InviteAction$Principal": "

The AWS account ID to invite.

" + "InviteAction$Principal": "

The Amazon Web Services account ID to invite.

" } }, "Proposal": { @@ -663,7 +758,7 @@ "ProposalDurationInt": { "base": null, "refs": { - "ApprovalThresholdPolicy$ProposalDurationInHours": "

The duration from the time that a proposal is created until it expires. If members cast neither the required number of YES votes to approve the proposal nor the number of NO votes required to reject it before the duration expires, the proposal is EXPIRED and ProposalActions are not carried out.

" + "ApprovalThresholdPolicy$ProposalDurationInHours": "

The duration from the time that a proposal is created until it expires. If members cast neither the required number of YES votes to approve the proposal nor the number of NO votes required to reject it before the duration expires, the proposal is EXPIRED and ProposalActions aren't carried out.

" } }, "ProposalListMaxResults": { @@ -677,8 +772,8 @@ "ProposalStatus": { "base": null, "refs": { - "Proposal$Status": "

The status of the proposal. Values are as follows:

", - "ProposalSummary$Status": "

The status of the proposal. Values are as follows:

" + "Proposal$Status": "

The status of the proposal. Values are as follows:

", + "ProposalSummary$Status": "

The status of the proposal. Values are as follows:

" } }, "ProposalSummary": { @@ -729,6 +824,9 @@ "ResourceIdString": { "base": null, "refs": { + "Accessor$Id": "

The unique identifier of the accessor.

", + "AccessorSummary$Id": "

The unique identifier of the accessor.

", + "CreateAccessorOutput$AccessorId": "

The unique identifier of the accessor.

", "CreateMemberInput$InvitationId": "

The unique identifier of the invitation that is sent to the member to join the network.

", "CreateMemberInput$NetworkId": "

The unique identifier of the network in which the member is created.

", "CreateMemberOutput$MemberId": "

The unique identifier of the member.

", @@ -738,13 +836,15 @@ "CreateNodeInput$MemberId": "

The unique identifier of the member that owns this node.

Applies only to Hyperledger Fabric.

", "CreateNodeOutput$NodeId": "

The unique identifier of the node.

", "CreateProposalInput$NetworkId": "

The unique identifier of the network for which the proposal is made.

", - "CreateProposalInput$MemberId": "

The unique identifier of the member that is creating the proposal. This identifier is especially useful for identifying the member making the proposal when multiple members exist in a single AWS account.

", + "CreateProposalInput$MemberId": "

The unique identifier of the member that is creating the proposal. This identifier is especially useful for identifying the member making the proposal when multiple members exist in a single Amazon Web Services account.

", "CreateProposalOutput$ProposalId": "

The unique identifier of the proposal.

", + "DeleteAccessorInput$AccessorId": "

The unique identifier of the accessor.

", "DeleteMemberInput$NetworkId": "

The unique identifier of the network from which the member is removed.

", "DeleteMemberInput$MemberId": "

The unique identifier of the member to remove.

", "DeleteNodeInput$NetworkId": "

The unique identifier of the network that the node is on.

Ethereum public networks have the following NetworkIds:

", "DeleteNodeInput$MemberId": "

The unique identifier of the member that owns this node.

Applies only to Hyperledger Fabric and is required for Hyperledger Fabric.

", "DeleteNodeInput$NodeId": "

The unique identifier of the node.

", + "GetAccessorInput$AccessorId": "

The unique identifier of the accessor.

", "GetMemberInput$NetworkId": "

The unique identifier of the network to which the member belongs.

", "GetMemberInput$MemberId": "

The unique identifier of the member.

", "GetNetworkInput$NetworkId": "

The unique identifier of the network to get information about.

", @@ -793,12 +893,12 @@ } }, "ResourceNotFoundException": { - "base": "

A requested resource does not exist. It may have been deleted or referenced inaccurately.

", + "base": "

A requested resource doesn't exist. It may have been deleted or referenced incorrectly.

", "refs": { } }, "ResourceNotReadyException": { - "base": "

The requested resource exists but is not in a status that can complete the operation.

", + "base": "

The requested resource exists but isn't in a status that can complete the operation.

", "refs": { } }, @@ -817,13 +917,13 @@ "InvalidRequestException$Message": null, "ListMembersInput$Name": "

The optional name of the member to list.

", "ListNetworksInput$Name": "

The name of the network.

", - "Member$KmsKeyArn": "

The Amazon Resource Name (ARN) of the customer managed key in AWS Key Management Service (AWS KMS) that the member uses for encryption at rest. If the value of this parameter is \"AWS Owned KMS Key\", the member uses an AWS owned KMS key for encryption. This parameter is inherited by the nodes that this member owns.

", + "Member$KmsKeyArn": "

The Amazon Resource Name (ARN) of the customer managed key in Key Management Service (KMS) that the member uses for encryption at rest. If the value of this parameter is \"AWS Owned KMS Key\", the member uses an Amazon Web Services owned KMS key for encryption. This parameter is inherited by the nodes that this member owns.

For more information, see Encryption at Rest in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide.

", "MemberFabricAttributes$CaEndpoint": "

The endpoint used to access the member's certificate authority.

", "Network$VpcEndpointServiceName": "

The VPC endpoint service name of the VPC endpoint service of the network. Members use the VPC endpoint service name to create a VPC endpoint to access network resources.

", "NetworkEthereumAttributes$ChainId": "

The Ethereum CHAIN_ID associated with the Ethereum network. Chain IDs are as follows:

", "NetworkFabricAttributes$OrderingServiceEndpoint": "

The endpoint of the ordering service for the network.

", - "Node$KmsKeyArn": "

The Amazon Resource Name (ARN) of the customer managed key in AWS Key Management Service (AWS KMS) that the node uses for encryption at rest. If the value of this parameter is \"AWS Owned KMS Key\", the node uses an AWS owned KMS key for encryption. The node inherits this parameter from the member that it belongs to.

Applies only to Hyperledger Fabric.

", - "NodeEthereumAttributes$HttpEndpoint": "

The endpoint on which the Ethereum node listens to run Ethereum JSON-RPC methods over HTTP connections from a client. Use this endpoint in client code for smart contracts when using an HTTP connection. Connections to this endpoint are authenticated using Signature Version 4.

", + "Node$KmsKeyArn": "

The Amazon Resource Name (ARN) of the customer managed key in Key Management Service (KMS) that the node uses for encryption at rest. If the value of this parameter is \"AWS Owned KMS Key\", the node uses an Amazon Web Services owned KMS key for encryption. The node inherits this parameter from the member that it belongs to.

For more information, see Encryption at Rest in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide.

Applies only to Hyperledger Fabric.

", + "NodeEthereumAttributes$HttpEndpoint": "

The endpoint on which the Ethereum node listens to run Ethereum API methods over HTTP connections from a client. Use this endpoint in client code for smart contracts when using an HTTP connection. Connections to this endpoint are authenticated using Signature Version 4.

", "NodeEthereumAttributes$WebSocketEndpoint": "

The endpoint on which the Ethereum node listens to run Ethereum JSON-RPC methods over WebSockets connections from a client. Use this endpoint in client code for smart contracts when using a WebSockets connection. Connections to this endpoint are authenticated using Signature Version 4.

", "NodeFabricAttributes$PeerEndpoint": "

The endpoint that identifies the peer node for all services except peer channel-based event services.

", "NodeFabricAttributes$PeerEventEndpoint": "

The endpoint that identifies the peer node for peer channel-based event services.

", @@ -877,13 +977,15 @@ } }, "ThrottlingException": { - "base": "

The request or operation could not be performed because a service is throttling requests. The most common source of throttling errors is launching EC2 instances such that your service limit for EC2 instances is exceeded. Request a limit increase or delete unused resources if possible.

", + "base": "

The request or operation couldn't be performed because a service is throttling requests. The most common source of throttling errors is creating resources that exceed your service limit for this resource type. Request a limit increase or delete unused resources if possible.

", "refs": { } }, "Timestamp": { "base": null, "refs": { + "Accessor$CreationDate": "

The creation date and time of the accessor.

", + "AccessorSummary$CreationDate": "

The creation date and time of the accessor.

", "Invitation$CreationDate": "

The date and time that the invitation was created.

", "Invitation$ExpirationDate": "

The date and time that the invitation expires. This is the CreationDate plus the ProposalDurationInHours that is specified in the ProposalThresholdPolicy. After this date and time, the invitee can no longer create a member and join the network using this InvitationId.

", "Member$CreationDate": "

The date and time that the member was created.

", @@ -893,9 +995,9 @@ "Node$CreationDate": "

The date and time that the node was created.

", "NodeSummary$CreationDate": "

The date and time that the node was created.

", "Proposal$CreationDate": "

The date and time that the proposal was created.

", - "Proposal$ExpirationDate": "

The date and time that the proposal expires. This is the CreationDate plus the ProposalDurationInHours that is specified in the ProposalThresholdPolicy. After this date and time, if members have not cast enough votes to determine the outcome according to the voting policy, the proposal is EXPIRED and Actions are not carried out.

", + "Proposal$ExpirationDate": "

The date and time that the proposal expires. This is the CreationDate plus the ProposalDurationInHours that is specified in the ProposalThresholdPolicy. After this date and time, if members haven't cast enough votes to determine the outcome according to the voting policy, the proposal is EXPIRED and Actions aren't carried out.

", "ProposalSummary$CreationDate": "

The date and time that the proposal was created.

", - "ProposalSummary$ExpirationDate": "

The date and time that the proposal expires. This is the CreationDate plus the ProposalDurationInHours that is specified in the ProposalThresholdPolicy. After this date and time, if members have not cast enough votes to determine the outcome according to the voting policy, the proposal is EXPIRED and Actions are not carried out.

" + "ProposalSummary$ExpirationDate": "

The date and time that the proposal expires. This is the CreationDate plus the ProposalDurationInHours that is specified in the ProposalThresholdPolicy. After this date and time, if members haven't cast enough votes to determine the outcome according to the voting policy, the proposal is EXPIRED and Actions aren't carried out.

" } }, "TooManyTagsException": { diff --git a/models/apis/managedblockchain/2018-09-24/endpoint-rule-set-1.json b/models/apis/managedblockchain/2018-09-24/endpoint-rule-set-1.json new file mode 100644 index 0000000000..b546d0a8e6 --- /dev/null +++ b/models/apis/managedblockchain/2018-09-24/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://managedblockchain-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://managedblockchain-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://managedblockchain.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://managedblockchain.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/models/apis/managedblockchain/2018-09-24/endpoint-tests-1.json b/models/apis/managedblockchain/2018-09-24/endpoint-tests-1.json new file mode 100644 index 0000000000..a6de1f26e6 --- /dev/null +++ b/models/apis/managedblockchain/2018-09-24/endpoint-tests-1.json @@ -0,0 +1,407 @@ +{ + "testCases": [ + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.us-gov-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.us-gov-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-gov-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://managedblockchain.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/managedblockchain/2018-09-24/paginators-1.json b/models/apis/managedblockchain/2018-09-24/paginators-1.json index e6864d284e..7a39179b77 100644 --- a/models/apis/managedblockchain/2018-09-24/paginators-1.json +++ b/models/apis/managedblockchain/2018-09-24/paginators-1.json @@ -1,5 +1,11 @@ { "pagination": { + "ListAccessors": { + "input_token": "NextToken", + "output_token": "NextToken", + "limit_key": "MaxResults", + "result_key": "Accessors" + }, "ListInvitations": { "input_token": "NextToken", "output_token": "NextToken", diff --git a/models/apis/s3/2006-03-01/api-2.json b/models/apis/s3/2006-03-01/api-2.json index fd78bb64a5..a7af2abfe7 100644 --- a/models/apis/s3/2006-03-01/api-2.json +++ b/models/apis/s3/2006-03-01/api-2.json @@ -64,7 +64,10 @@ {"shape":"BucketAlreadyOwnedByYou"} ], "documentationUrl":"http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUT.html", - "alias":"PutBucket" + "alias":"PutBucket", + "staticContextParams":{ + "DisableAccessPoints":{"value":true} + } }, "CreateMultipartUpload":{ "name":"CreateMultipartUpload", @@ -1076,6 +1079,9 @@ "authtype":"v4-unsigned-body", "endpoint":{ "hostPrefix":"{RequestRoute}." + }, + "staticContextParams":{ + "UseObjectLambdaEndpoint":{"value":true} } } }, @@ -1107,6 +1113,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -1304,6 +1311,7 @@ "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "cn-north-1", "cn-northwest-1", @@ -1536,6 +1544,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -1728,6 +1737,7 @@ }, "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -1993,6 +2003,7 @@ }, "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2114,6 +2125,7 @@ }, "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2294,6 +2306,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2315,6 +2328,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2331,6 +2345,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2350,6 +2365,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2369,6 +2385,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2390,6 +2407,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2409,6 +2427,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2430,6 +2449,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2446,6 +2466,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2462,6 +2483,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2478,6 +2500,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2494,6 +2517,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2510,6 +2534,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2579,6 +2604,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2633,6 +2659,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2677,6 +2704,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2719,6 +2747,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2930,6 +2959,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2956,6 +2986,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -2982,6 +3013,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3012,6 +3044,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3035,6 +3068,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3061,6 +3095,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3087,6 +3122,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3117,6 +3153,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3142,6 +3179,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3164,6 +3202,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3186,6 +3225,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3212,6 +3252,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3233,6 +3274,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3256,6 +3298,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3279,6 +3322,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3302,6 +3346,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3325,6 +3370,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3347,6 +3393,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3370,6 +3417,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3396,6 +3444,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3421,6 +3470,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3455,6 +3505,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3537,6 +3588,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3608,6 +3660,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3646,6 +3699,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3850,6 +3904,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -3972,6 +4027,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -4018,6 +4074,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -4067,6 +4124,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -4100,6 +4158,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -4161,6 +4220,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -4355,6 +4415,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -4788,6 +4849,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -4821,6 +4883,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -4849,6 +4912,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -4882,6 +4946,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -4930,6 +4995,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -5000,6 +5066,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -5061,6 +5128,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -5124,6 +5192,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -5219,6 +5288,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -5825,6 +5895,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -5862,6 +5933,7 @@ }, "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -5918,6 +5990,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -5948,6 +6021,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -5983,6 +6057,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6019,6 +6094,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6045,6 +6121,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6072,6 +6149,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6099,6 +6177,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6134,6 +6213,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6170,6 +6250,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6200,6 +6281,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6230,6 +6312,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6265,6 +6348,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6295,6 +6379,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6331,6 +6416,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6371,6 +6457,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6406,6 +6493,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6441,6 +6529,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6481,6 +6570,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6536,6 +6626,7 @@ }, "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6616,6 +6707,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6673,6 +6765,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6802,6 +6895,7 @@ }, "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -6997,6 +7091,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -7063,6 +7158,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -7113,6 +7209,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -7392,6 +7489,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -7575,6 +7673,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -7946,6 +8045,7 @@ "members":{ "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -8116,6 +8216,7 @@ }, "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"Bucket" }, @@ -8438,5 +8539,23 @@ "payload":"Body" }, "Years":{"type":"integer"} + }, + "clientContextParams":{ + "Accelerate":{ + "documentation":"Enables this client to use S3 Transfer Acceleration endpoints.", + "type":"boolean" + }, + "DisableMultiRegionAccessPoints":{ + "documentation":"Disables this client's usage of Multi-Region Access Points.", + "type":"boolean" + }, + "ForcePathStyle":{ + "documentation":"Forces this client to use path-style addressing for buckets.", + "type":"boolean" + }, + "UseArnRegion":{ + "documentation":"Enables this client to use an ARN's region when constructing an endpoint instead of the client's configured region.", + "type":"boolean" + } } } diff --git a/models/apis/s3/2006-03-01/endpoint-rule-set-1.json b/models/apis/s3/2006-03-01/endpoint-rule-set-1.json new file mode 100644 index 0000000000..394ecc1572 --- /dev/null +++ b/models/apis/s3/2006-03-01/endpoint-rule-set-1.json @@ -0,0 +1,9962 @@ +{ + "version": "1.0", + "parameters": { + "Bucket": { + "required": false, + "documentation": "The S3 bucket used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 bucket.", + "type": "String" + }, + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + }, + "ForcePathStyle": { + "builtIn": "AWS::S3::ForcePathStyle", + "required": false, + "documentation": "When true, force a path-style endpoint to be used where the bucket name is part of the path.", + "type": "Boolean" + }, + "Accelerate": { + "builtIn": "AWS::S3::Accelerate", + "required": true, + "default": false, + "documentation": "When true, use S3 Accelerate. NOTE: Not all regions support S3 accelerate.", + "type": "Boolean" + }, + "UseGlobalEndpoint": { + "builtIn": "AWS::S3::UseGlobalEndpoint", + "required": true, + "default": false, + "documentation": "Whether the global endpoint should be used, rather then the regional endpoint for us-east-1.", + "type": "Boolean" + }, + "UseObjectLambdaEndpoint": { + "required": false, + "documentation": "Internal parameter to use object lambda endpoint for an operation (eg: WriteGetObjectResponse)", + "type": "Boolean" + }, + "DisableAccessPoints": { + "required": false, + "documentation": "Internal parameter to disable Access Point Buckets", + "type": "Boolean" + }, + "DisableMultiRegionAccessPoints": { + "builtIn": "AWS::S3::DisableMultiRegionAccessPoints", + "required": true, + "default": false, + "documentation": "Whether multi-region access points (MRAP) should be disabled.", + "type": "Boolean" + }, + "UseArnRegion": { + "builtIn": "AWS::S3::UseArnRegion", + "required": false, + "documentation": "When an Access Point ARN is provided and this flag is enabled, the SDK MUST use the ARN's region when constructing the endpoint instead of the client's configured region.", + "type": "Boolean" + } + }, + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Bucket" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + } + ] + } + ], + "error": "Custom endpoint `{Endpoint}` was not a valid URI", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "ForcePathStyle" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "ForcePathStyle" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "Bucket" + } + ] + } + ], + "error": "Path-style addressing cannot be used with ARN buckets", + "type": "error" + }, + { + "conditions": [ + { + "fn": "uriEncode", + "argv": [ + { + "ref": "Bucket" + } + ], + "assign": "uri_encoded_bucket" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "error": "Cannot set dual-stack in combination with a custom endpoint.", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Path-style addressing cannot be used with FIPS", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Path-style addressing cannot be used with S3 Accelerate", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + } + ] + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "aws.isVirtualHostableS3Bucket", + "argv": [ + { + "ref": "Bucket" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "Region" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "error": "Partition does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Accelerate cannot be used with FIPS", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "error": "S3 Accelerate cannot be used in this region", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + } + ], + "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + false + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + false + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "isIp" + ] + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid region: region was not a valid DNS name.", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "url" + }, + "scheme" + ] + }, + "http" + ] + }, + { + "fn": "aws.isVirtualHostableS3Bucket", + "argv": [ + { + "ref": "Bucket" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "Region" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{Bucket}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "Invalid region: region was not a valid DNS name.", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "Bucket" + } + ], + "assign": "bucketArn" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[0]" + ], + "assign": "arnType" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "service" + ] + }, + "s3-object-lambda" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "accesspoint" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[1]" + ], + "assign": "accessPointName" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "accessPointName" + }, + "" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "S3 Object Lambda does not support Dual-stack", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + } + ], + "error": "S3 Object Lambda does not support S3 Accelerate", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + "" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "DisableAccessPoints" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "DisableAccessPoints" + }, + true + ] + } + ], + "error": "Access points are not supported for this operation", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[2]" + ] + } + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "UseArnRegion" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseArnRegion" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + "{Region}" + ] + } + ] + } + ], + "error": "Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + } + ], + "assign": "bucketPartition" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketPartition" + }, + "name" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "accountId" + ] + }, + "" + ] + } + ], + "error": "Invalid ARN: Missing account id", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "accountId" + ] + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "accessPointName" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketPartition" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "error": "Partition does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "endpoint": { + "url": "{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{bucketArn#region}", + "disableDoubleEncoding": true, + "signingName": "s3-object-lambda" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{bucketArn#region}", + "disableDoubleEncoding": true, + "signingName": "s3-object-lambda" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{bucketArn#region}", + "disableDoubleEncoding": true, + "signingName": "s3-object-lambda" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Could not load partition for ARN region `{bucketArn#region}`", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: bucket ARN is missing a region", + "type": "error" + } + ] + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "accesspoint" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[1]" + ], + "assign": "accessPointName" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "accessPointName" + }, + "" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + "" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "accesspoint" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + "" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "DisableAccessPoints" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "DisableAccessPoints" + }, + true + ] + } + ], + "error": "Access points are not supported for this operation", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[2]" + ] + } + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "UseArnRegion" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseArnRegion" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + "{Region}" + ] + } + ] + } + ], + "error": "Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + } + ], + "assign": "bucketPartition" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketPartition" + }, + "name" + ] + }, + "{partitionResult#name}" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "service" + ] + }, + "s3" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "accountId" + ] + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "accessPointName" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + } + ], + "error": "Access Points do not support S3 Accelerate", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketPartition" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "error": "Partition does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "error": "DualStack cannot be combined with a Host override (PrivateLink)", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{bucketArn#region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{bucketArn#region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{bucketArn#region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "endpoint": { + "url": "{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{bucketArn#region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{bucketArn#region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The ARN was not for the S3 service, found: {bucketArn#service}", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Could not load partition for ARN region `{bucketArn#region}`", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: bucket ARN is missing a region", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "accessPointName" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "S3 MRAP does not support dual-stack", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "S3 MRAP does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + } + ], + "error": "S3 MRAP does not support S3 Accelerate", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "DisableMultiRegionAccessPoints" + }, + true + ] + } + ], + "error": "Invalid configuration: Multi-Region Access Point ARNs are disabled.", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "mrapPartition" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "mrapPartition" + }, + "name" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "partition" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://{accessPointName}.accesspoint.s3-global.{mrapPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingRegionSet": [ + "*" + ], + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "Client was configured for partition `{mrapPartition#name}` but bucket referred to partition `{bucketArn#partition}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "{Region} was not a valid region", + "type": "error" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid Access Point Name", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "service" + ] + }, + "s3-outposts" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "S3 Outposts does not support Dual-stack", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "S3 Outposts does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + } + ], + "error": "S3 Outposts does not support S3 Accelerate", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[4]" + ] + } + ] + } + ], + "error": "Invalid Arn: Outpost Access Point ARN contains sub resources", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[1]" + ], + "assign": "outpostId" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "outpostId" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "UseArnRegion" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseArnRegion" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + "{Region}" + ] + } + ] + } + ], + "error": "Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + } + ], + "assign": "bucketPartition" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketPartition" + }, + "name" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "accountId" + ] + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[2]" + ], + "assign": "outpostType" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[3]" + ], + "assign": "accessPointName" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "outpostType" + }, + "accesspoint" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "endpoint": { + "url": "https://{accessPointName}-{bucketArn#accountId}.{outpostId}.{url#authority}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{bucketArn#region}", + "disableDoubleEncoding": true, + "signingName": "s3-outposts" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://{accessPointName}-{bucketArn#accountId}.{outpostId}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{bucketArn#region}", + "disableDoubleEncoding": true, + "signingName": "s3-outposts" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Expected an outpost type `accesspoint`, found {outpostType}", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: expected an access point name", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: Expected a 4-component resource", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Could not load partition for ARN region {bucketArn#region}", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The Outpost Id was not set", + "type": "error" + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: No ARN type specified", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "substring", + "argv": [ + { + "ref": "Bucket" + }, + 0, + 4, + false + ], + "assign": "arnPrefix" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnPrefix" + }, + "arn:" + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "Bucket" + } + ] + } + ] + } + ] + } + ], + "error": "Invalid ARN: `{Bucket}` was not a valid ARN", + "type": "error" + }, + { + "conditions": [ + { + "fn": "uriEncode", + "argv": [ + { + "ref": "Bucket" + } + ], + "assign": "uri_encoded_bucket" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "error": "Cannot set dual-stack in combination with a custom endpoint.", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Path-style addressing cannot be used with FIPS", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Path-style addressing cannot be used with S3 Accelerate", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + } + ] + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "UseObjectLambdaEndpoint" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseObjectLambdaEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "Region" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "S3 Object Lambda does not support Dual-stack", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "Accelerate" + }, + true + ] + } + ], + "error": "S3 Object Lambda does not support S3 Accelerate", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "error": "Partition does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3-object-lambda" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "endpoint": { + "url": "https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3-object-lambda" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3-object-lambda" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid region: region was not a valid DNS name.", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Bucket" + } + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "Region" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "error": "Partition does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3-fips.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3-fips.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://s3-fips.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3-fips.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ], + "endpoint": { + "url": "https://s3.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "us-east-1" + ] + } + ], + "endpoint": { + "url": "https://s3.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "Region" + }, + "aws-global" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseGlobalEndpoint" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid region: region was not a valid DNS name.", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "A region must be set when sending requests to S3.", + "type": "error" + } + ] + } + ] +} \ No newline at end of file diff --git a/models/apis/s3/2006-03-01/endpoint-tests-1.json b/models/apis/s3/2006-03-01/endpoint-tests-1.json new file mode 100644 index 0000000000..dbd7b0b5e8 --- /dev/null +++ b/models/apis/s3/2006-03-01/endpoint-tests-1.json @@ -0,0 +1,6266 @@ +{ + "testCases": [ + { + "documentation": "region is not a valid DNS-suffix", + "expect": { + "error": "Invalid region: region was not a valid DNS name." + }, + "params": { + "Region": "a b", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "Invalid access point ARN: Not S3", + "expect": { + "error": "Invalid ARN: The ARN was not for the S3 service, found: not-s3" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:not-s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:not-s3:us-west-2:123456789012:accesspoint:myendpoint" + } + }, + { + "documentation": "Invalid access point ARN: invalid resource", + "expect": { + "error": "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint:more-data", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint:more-data" + } + }, + { + "documentation": "Invalid access point ARN: invalid no ap name", + "expect": { + "error": "Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:" + } + }, + { + "documentation": "Invalid access point ARN: AccountId is invalid", + "expect": { + "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `123456_789012`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456_789012:accesspoint:apname", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456_789012:accesspoint:apname" + } + }, + { + "documentation": "Invalid access point ARN: access point name is invalid", + "expect": { + "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `ap_name`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:ap_name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:ap_name" + } + }, + { + "documentation": "Access points (disable access points explicitly false)", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "DisableAccessPoints": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint" + } + }, + { + "documentation": "Access points: partition does not support FIPS", + "expect": { + "error": "Partition does not support FIPS" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3:cn-north-1:123456789012:accesspoint:myendpoint" + } + }, + { + "documentation": "Bucket region is invalid", + "expect": { + "error": "Invalid region in ARN: `us-west -2` (invalid DNS name)" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west -2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "DisableAccessPoints": false, + "Bucket": "arn:aws:s3:us-west -2:123456789012:accesspoint:myendpoint" + } + }, + { + "documentation": "Access points when Access points explicitly disabled (used for CreateBucket)", + "expect": { + "error": "Access points are not supported for this operation" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "CreateBucket", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "DisableAccessPoints": true, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint" + } + }, + { + "documentation": "missing arn type", + "expect": { + "error": "Invalid ARN: `arn:aws:s3:us-west-2:123456789012:` was not a valid ARN" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "DisableAccessPoints": true, + "Bucket": "arn:aws:s3:us-west-2:123456789012:" + } + }, + { + "documentation": "SDK::Host + access point + Dualstack is an error", + "expect": { + "error": "DualStack cannot be combined with a Host override (PrivateLink)" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseDualStack": true, + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Endpoint": "https://beta.example.com", + "Region": "cn-north-1", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "Access point ARN with FIPS & Dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false, + "DisableAccessPoints": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint" + } + }, + { + "documentation": "Access point ARN with Dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint.dualstack.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "DisableAccessPoints": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint" + } + }, + { + "documentation": "vanilla MRAP", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4a", + "signingRegionSet": [ + "*" + ], + "signingName": "s3", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mfzwi23gnjvgw.mrap.accesspoint.s3-global.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Key": "key" + } + } + ], + "params": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Region": "us-east-1", + "DisableMultiRegionAccessPoints": false, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "MRAP does not support FIPS", + "expect": { + "error": "S3 MRAP does not support FIPS" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Key": "key" + } + } + ], + "params": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Region": "us-east-1", + "DisableMultiRegionAccessPoints": false, + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "MRAP does not support DualStack", + "expect": { + "error": "S3 MRAP does not support dual-stack" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Key": "key" + } + } + ], + "params": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Region": "us-east-1", + "DisableMultiRegionAccessPoints": false, + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "MRAP does not support S3 Accelerate", + "expect": { + "error": "S3 MRAP does not support S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Key": "key" + } + } + ], + "params": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Region": "us-east-1", + "DisableMultiRegionAccessPoints": false, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": true + } + }, + { + "documentation": "MRAP explicitly disabled", + "expect": { + "error": "Invalid configuration: Multi-Region Access Point ARNs are disabled." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::DisableMultiRegionAccessPoints": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Key": "key" + } + } + ], + "params": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Region": "us-east-1", + "DisableMultiRegionAccessPoints": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "Dual-stack endpoint with path-style forced", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.us-west-2.amazonaws.com/bucketname" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true, + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucketname", + "Key": "key" + } + } + ], + "params": { + "Bucket": "bucketname", + "Region": "us-west-2", + "ForcePathStyle": true, + "UseFIPS": false, + "Accelerate": false, + "UseDualStack": true + } + }, + { + "documentation": "Dual-stack endpoint + SDK::Host is error", + "expect": { + "error": "Cannot set dual-stack in combination with a custom endpoint." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true, + "SDK::Endpoint": "https://abc.com", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucketname", + "Key": "key" + } + } + ], + "params": { + "Bucket": "bucketname", + "Region": "us-west-2", + "ForcePathStyle": true, + "UseFIPS": false, + "Accelerate": false, + "UseDualStack": true, + "Endpoint": "https://abc.com" + } + }, + { + "documentation": "path style + ARN bucket", + "expect": { + "error": "Path-style addressing cannot be used with ARN buckets" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "ForcePathStyle": true, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "implicit path style bucket + dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.us-west-2.amazonaws.com/99_ab" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99_ab", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99_ab", + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "implicit path style bucket + dualstack", + "expect": { + "error": "Cannot set dual-stack in combination with a custom endpoint." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true, + "SDK::Endpoint": "http://abc.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99_ab", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99_ab", + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false, + "Endpoint": "http://abc.com" + } + }, + { + "documentation": "don't allow URL injections in the bucket", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.us-west-2.amazonaws.com/example.com%23" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "example.com#", + "Key": "key" + } + } + ], + "params": { + "Bucket": "example.com#", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false, + "Accelerate": false + } + }, + { + "documentation": "URI encode bucket names in the path", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.us-west-2.amazonaws.com/bucket%20name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket name", + "Key": "key" + } + } + ], + "params": { + "Bucket": "bucket name", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false, + "Accelerate": false + } + }, + { + "documentation": "scheme is respected", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/99_ab" + } + }, + "params": { + "Accelerate": false, + "Bucket": "99_ab", + "Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "scheme is respected (virtual addressing)", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "http://bucketname.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/foo" + } + }, + "params": { + "Accelerate": false, + "Bucket": "bucketname", + "Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/foo", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "path style + implicit private link", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/99_ab" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99_ab", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99_ab", + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "invalid Endpoint override", + "expect": { + "error": "Custom endpoint `abcde://nota#url` was not a valid URI" + }, + "params": { + "Accelerate": false, + "Bucket": "bucketname", + "Endpoint": "abcde://nota#url", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "using an IPv4 address forces path style", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://123.123.0.1/bucketname" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "SDK::Endpoint": "https://123.123.0.1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucketname", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucketname", + "Endpoint": "https://123.123.0.1", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "vanilla access point arn with region mismatch and UseArnRegion=false", + "expect": { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-east-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:us-east-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "UseArnRegion": false, + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "vanilla access point arn with region mismatch and UseArnRegion unset", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "us-east-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "vanilla access point arn with region mismatch and UseArnRegion=true", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "UseArnRegion": true, + "Region": "us-east-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "subdomains are not allowed in virtual buckets", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://s3.us-east-1.amazonaws.com/bucket.name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket.name", + "Key": "key" + } + } + ], + "params": { + "Bucket": "bucket.name", + "Region": "us-east-1" + } + }, + { + "documentation": "bucket names with 3 characters are allowed in virtual buckets", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://aaa.s3.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "aaa", + "Key": "key" + } + } + ], + "params": { + "Bucket": "aaa", + "Region": "us-east-1" + } + }, + { + "documentation": "bucket names with fewer than 3 characters are not allowed in virtual host", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://s3.us-east-1.amazonaws.com/aa" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "aa", + "Key": "key" + } + } + ], + "params": { + "Bucket": "aa", + "Region": "us-east-1" + } + }, + { + "documentation": "bucket names with uppercase characters are not allowed in virtual host", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "https://s3.us-east-1.amazonaws.com/BucketName" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "BucketName", + "Key": "key" + } + } + ], + "params": { + "Bucket": "BucketName", + "Region": "us-east-1" + } + }, + { + "documentation": "subdomains are allowed in virtual buckets on http endpoints", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "disableDoubleEncoding": true, + "signingRegion": "us-east-1" + } + ] + }, + "url": "http://bucket.name.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "SDK::Endpoint": "http://example.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket.name", + "Key": "key" + } + } + ], + "params": { + "Bucket": "bucket.name", + "Region": "us-east-1", + "Endpoint": "http://example.com" + } + }, + { + "documentation": "no region set", + "expect": { + "error": "A region must be set when sending requests to S3." + }, + "params": { + "Bucket": "bucket-name" + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=us-east-1 uses the global endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=us-west-2 uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "us-west-2", + "UseGlobalEndpoint": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=cn-north-1 uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.cn-north-1.amazonaws.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "cn-north-1", + "UseGlobalEndpoint": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=us-east-1, fips=true uses the regional endpoint with fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=us-east-1, dualstack=true uses the regional endpoint with dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseDualStack": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=us-east-1, dualstack and fips uses the regional endpoint with fips/dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=us-east-1 with custom endpoint, uses custom", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "SDK::Endpoint": "https://example.com", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "us-east-1", + "Endpoint": "https://example.com", + "UseGlobalEndpoint": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=us-west-2 with custom endpoint, uses custom", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://example.com", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "us-west-2", + "Endpoint": "https://example.com", + "UseGlobalEndpoint": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "UseGlobalEndpoints=true, region=us-east-1 with accelerate on non bucket case uses the global endpoint and ignores accelerate", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::Accelerate": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": true + } + }, + { + "documentation": "aws-global region uses the global endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global" + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "aws-global", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "aws-global region with fips uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::UseFIPS": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "aws-global", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "aws-global region with dualstack uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::UseDualStack": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "aws-global", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "aws-global region with fips and dualstack uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "aws-global", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "aws-global region with accelerate on non-bucket case, uses global endpoint and ignores accelerate", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::S3::Accelerate": true + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "aws-global", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": true + } + }, + { + "documentation": "aws-global region with custom endpoint, uses custom", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "SDK::Endpoint": "https://example.com" + }, + "operationName": "ListBuckets" + } + ], + "params": { + "Region": "aws-global", + "Endpoint": "https://example.com", + "UseGlobalEndpoint": false, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, aws-global region uses the global endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, aws-global region with fips uses the regional fips endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, aws-global region with dualstack uses the regional dualstack endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.dualstack.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, aws-global region with fips/dualstack uses the regional fips/dualstack endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-fips.dualstack.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "UseFIPS": true, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, aws-global region with accelerate uses the global accelerate endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-accelerate.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": true + } + }, + { + "documentation": "virtual addressing, aws-global region with custom endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "SDK::Endpoint": "https://example.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Endpoint": "https://example.com", + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, UseGlobalEndpoint and us-east-1 region uses the global endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, UseGlobalEndpoint and us-west-2 region uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseGlobalEndpoint": true, + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, UseGlobalEndpoint and us-east-1 region and fips uses the regional fips endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "Bucket": "bucket-name", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, UseGlobalEndpoint and us-east-1 region and dualstack uses the regional dualstack endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.dualstack.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseDualStack": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "virtual addressing, UseGlobalEndpoint and us-east-1 region and accelerate uses the global accelerate endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-accelerate.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::Accelerate": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": true + } + }, + { + "documentation": "virtual addressing, UseGlobalEndpoint and us-east-1 region with custom endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "SDK::Endpoint": "https://example.com", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Endpoint": "https://example.com", + "UseGlobalEndpoint": true, + "Bucket": "bucket-name", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "ForcePathStyle, aws-global region uses the global endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "ForcePathStyle": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "ForcePathStyle, aws-global region with fips is invalid", + "expect": { + "error": "Path-style addressing cannot be used with FIPS" + }, + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "ForcePathStyle": true, + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "ForcePathStyle, aws-global region with dualstack uses regional dualstack endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.us-east-1.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::UseDualStack": true, + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Bucket": "bucket-name", + "ForcePathStyle": true, + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "ForcePathStyle, aws-global region custom endpoint uses the custom endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://example.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "SDK::Endpoint": "https://example.com", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "Endpoint": "https://example.com", + "Bucket": "bucket-name", + "ForcePathStyle": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "ForcePathStyle, UseGlobalEndpoint us-east-1 region uses the global endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::ForcePathStyle": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "bucket-name", + "UseGlobalEndpoint": true, + "ForcePathStyle": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "ForcePathStyle, UseGlobalEndpoint us-west-2 region uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.us-west-2.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::ForcePathStyle": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "Bucket": "bucket-name", + "UseGlobalEndpoint": true, + "ForcePathStyle": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "ForcePathStyle, UseGlobalEndpoint us-east-1 region, dualstack uses the regional dualstack endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.us-east-1.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseDualStack": true, + "AWS::S3::ForcePathStyle": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "bucket-name", + "UseGlobalEndpoint": true, + "ForcePathStyle": true, + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false + } + }, + { + "documentation": "ForcePathStyle, UseGlobalEndpoint us-east-1 region custom endpoint uses the custom endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://example.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "SDK::Endpoint": "https://example.com", + "AWS::S3::ForcePathStyle": true, + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "Bucket": "bucket-name", + "Endpoint": "https://example.com", + "UseGlobalEndpoint": true, + "ForcePathStyle": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "ARN with aws-global region and UseArnRegion uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://reports-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/accesspoint/reports", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "UseArnRegion": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/accesspoint/reports" + } + }, + { + "documentation": "cross partition MRAP ARN is an error", + "expect": { + "error": "Client was configured for partition `aws` but bucket referred to partition `aws-cn`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws-cn:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Key": "key" + } + } + ], + "params": { + "Bucket": "arn:aws-cn:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap", + "Region": "us-west-1" + } + }, + { + "documentation": "Endpoint override, accesspoint with HTTP, port", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "http://myendpoint-123456789012.beta.example.com:1234" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "http://beta.example.com:1234" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Endpoint": "http://beta.example.com:1234", + "Region": "us-west-2", + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint" + } + }, + { + "documentation": "Endpoint override, accesspoint with http, path, query, and port", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "http://myendpoint-123456789012.beta.example.com:1234/path" + } + }, + "params": { + "Region": "us-west-2", + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Endpoint": "http://beta.example.com:1234/path", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false + } + }, + { + "documentation": "vanilla virtual addressing@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "virtual addressing + dualstack@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.dualstack.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "accelerate + dualstack@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-accelerate.dualstack.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true, + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "accelerate (dualstack=false)@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-accelerate.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "virtual addressing + fips@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-fips.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "virtual addressing + dualstack + fips@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-fips.dualstack.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "accelerate + fips = error@us-west-2", + "expect": { + "error": "Accelerate cannot be used with FIPS" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true, + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "vanilla virtual addressing@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.cn-north-1.amazonaws.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "virtual addressing + dualstack@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.dualstack.cn-north-1.amazonaws.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "accelerate (dualstack=false)@cn-north-1", + "expect": { + "error": "S3 Accelerate cannot be used in this region" + }, + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "virtual addressing + fips@cn-north-1", + "expect": { + "error": "Partition does not support FIPS" + }, + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "vanilla virtual addressing@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "virtual addressing + dualstack@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3.dualstack.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "accelerate + dualstack@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-accelerate.dualstack.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseDualStack": true, + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "accelerate (dualstack=false)@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-accelerate.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "virtual addressing + fips@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-fips.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "virtual addressing + dualstack + fips@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.s3-fips.dualstack.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "accelerate + fips = error@af-south-1", + "expect": { + "error": "Accelerate cannot be used with FIPS" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseFIPS": true, + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "vanilla path style@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.us-west-2.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + fips@us-west-2", + "expect": { + "error": "Path-style addressing cannot be used with FIPS" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true, + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "path style + accelerate = error@us-west-2", + "expect": { + "error": "Path-style addressing cannot be used with S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::ForcePathStyle": true, + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + dualstack@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.us-west-2.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true, + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + arn is error@us-west-2", + "expect": { + "error": "Path-style addressing cannot be used with ARN buckets" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "ForcePathStyle": true, + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + invalid DNS name@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.us-west-2.amazonaws.com/99a_b" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99a_b", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99a_b", + "ForcePathStyle": true, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "no path style + invalid DNS name@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.us-west-2.amazonaws.com/99a_b" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99a_b", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99a_b", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "vanilla path style@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.cn-north-1.amazonaws.com.cn/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + fips@cn-north-1", + "expect": { + "error": "Path-style addressing cannot be used with FIPS" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseFIPS": true, + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "path style + accelerate = error@cn-north-1", + "expect": { + "error": "Path-style addressing cannot be used with S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::S3::ForcePathStyle": true, + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + dualstack@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.cn-north-1.amazonaws.com.cn/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseDualStack": true, + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + arn is error@cn-north-1", + "expect": { + "error": "Path-style addressing cannot be used with ARN buckets" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "ForcePathStyle": true, + "Region": "cn-north-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + invalid DNS name@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.cn-north-1.amazonaws.com.cn/99a_b" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99a_b", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99a_b", + "ForcePathStyle": true, + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "no path style + invalid DNS name@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.cn-north-1.amazonaws.com.cn/99a_b" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99a_b", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99a_b", + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "vanilla path style@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.af-south-1.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + fips@af-south-1", + "expect": { + "error": "Path-style addressing cannot be used with FIPS" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseFIPS": true, + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "path style + accelerate = error@af-south-1", + "expect": { + "error": "Path-style addressing cannot be used with S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::S3::ForcePathStyle": true, + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + dualstack@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.dualstack.af-south-1.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseDualStack": true, + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + arn is error@af-south-1", + "expect": { + "error": "Path-style addressing cannot be used with ARN buckets" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "ForcePathStyle": true, + "Region": "af-south-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + invalid DNS name@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.af-south-1.amazonaws.com/99a_b" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99a_b", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99a_b", + "ForcePathStyle": true, + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "no path style + invalid DNS name@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3.af-south-1.amazonaws.com/99a_b" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "99a_b", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "99a_b", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "virtual addressing + private link@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "http://bucket-name.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + private link@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "SDK::Host + FIPS@us-west-2", + "expect": { + "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true, + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "SDK::Host + DualStack@us-west-2", + "expect": { + "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true, + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "us-west-2", + "UseDualStack": true, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "SDK::HOST + accelerate@us-west-2", + "expect": { + "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "SDK::Host + access point ARN@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.beta.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Endpoint": "https://beta.example.com", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "virtual addressing + private link@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + private link@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "SDK::Host + FIPS@cn-north-1", + "expect": { + "error": "Partition does not support FIPS" + }, + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "SDK::Host + DualStack@cn-north-1", + "expect": { + "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseDualStack": true, + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "SDK::HOST + accelerate@cn-north-1", + "expect": { + "error": "S3 Accelerate cannot be used in this region" + }, + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "cn-north-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "SDK::Host + access point ARN@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.beta.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Endpoint": "https://beta.example.com", + "Region": "cn-north-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "virtual addressing + private link@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://bucket-name.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "path style + private link@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/bucket-name" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "AWS::S3::ForcePathStyle": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": true, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "SDK::Host + FIPS@af-south-1", + "expect": { + "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseFIPS": true, + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "SDK::Host + DualStack@af-south-1", + "expect": { + "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseDualStack": true, + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": true, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "SDK::HOST + accelerate@af-south-1", + "expect": { + "error": "Host override cannot be combined with Dualstack, FIPS, or S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "bucket-name", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "bucket-name", + "ForcePathStyle": false, + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Region": "af-south-1", + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "SDK::Host + access point ARN@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.beta.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Endpoint": "https://beta.example.com", + "Region": "af-south-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "vanilla access point arn@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "access point arn + FIPS@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint-fips.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "access point arn + accelerate = error@us-west-2", + "expect": { + "error": "Access Points do not support S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "access point arn + FIPS + DualStack@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "vanilla access point arn@cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint.cn-north-1.amazonaws.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "cn-north-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "access point arn + FIPS@cn-north-1", + "expect": { + "error": "Partition does not support FIPS" + }, + "params": { + "Accelerate": false, + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "cn-north-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "access point arn + accelerate = error@cn-north-1", + "expect": { + "error": "Access Points do not support S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "cn-north-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "access point arn + FIPS + DualStack@cn-north-1", + "expect": { + "error": "Partition does not support FIPS" + }, + "params": { + "Accelerate": false, + "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "cn-north-1", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "vanilla access point arn@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "af-south-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "access point arn + FIPS@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint-fips.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseFIPS": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "af-south-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "access point arn + accelerate = error@af-south-1", + "expect": { + "error": "Access Points do not support S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::S3::Accelerate": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": true, + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "af-south-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "access point arn + FIPS + DualStack@af-south-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myendpoint-123456789012.s3-accesspoint-fips.dualstack.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint", + "ForcePathStyle": false, + "Region": "af-south-1", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": true, + "___key": "key" + } + }, + { + "documentation": "S3 outposts vanilla test", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://reports-123456789012.op-01234567890123456.s3-outposts.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports" + } + }, + { + "documentation": "S3 outposts custom endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://reports-123456789012.op-01234567890123456.example.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://example.amazonaws.com" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports", + "Endpoint": "https://example.amazonaws.com" + } + }, + { + "documentation": "outposts arn with region mismatch and UseArnRegion=false", + "expect": { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "ForcePathStyle": false, + "UseArnRegion": false, + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "outposts arn with region mismatch, custom region and UseArnRegion=false", + "expect": { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://example.com", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Endpoint": "https://example.com", + "ForcePathStyle": false, + "UseArnRegion": false, + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "outposts arn with region mismatch and UseArnRegion=true", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myaccesspoint-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "ForcePathStyle": false, + "UseArnRegion": true, + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "outposts arn with region mismatch and UseArnRegion unset", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myaccesspoint-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "ForcePathStyle": false, + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "outposts arn with partition mismatch and UseArnRegion=true", + "expect": { + "error": "Client was configured for partition `aws` but ARN (`arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint`) has `aws-cn`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "ForcePathStyle": false, + "UseArnRegion": true, + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "ARN with UseGlobalEndpoint and use-east-1 region uses the regional endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://reports-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::UseGlobalEndpoint": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/accesspoint/reports", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseGlobalEndpoint": true, + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/accesspoint/reports" + } + }, + { + "documentation": "S3 outposts does not support dualstack", + "expect": { + "error": "S3 Outposts does not support Dual-stack" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports" + } + }, + { + "documentation": "S3 outposts does not support fips", + "expect": { + "error": "S3 Outposts does not support FIPS" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports" + } + }, + { + "documentation": "S3 outposts does not support accelerate", + "expect": { + "error": "S3 Outposts does not support S3 Accelerate" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": true, + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports" + } + }, + { + "documentation": "validates against subresource", + "expect": { + "error": "Invalid Arn: Outpost Access Point ARN contains sub resources" + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:mybucket:object:foo" + } + }, + { + "documentation": "object lambda @us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.s3-object-lambda.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda, colon resource deliminator @us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.s3-object-lambda.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:mybanner" + } + }, + { + "documentation": "object lambda @us-east-1, client region us-west-2, useArnRegion=true", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @us-east-1, client region s3-external-1, useArnRegion=true", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "s3-external-1", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "s3-external-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @us-east-1, client region s3-external-1, useArnRegion=false", + "expect": { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `s3-external-1` and UseArnRegion is `false`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "s3-external-1", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "s3-external-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @us-east-1, client region aws-global, useArnRegion=true", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @us-east-1, client region aws-global, useArnRegion=false", + "expect": { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `aws-global` and UseArnRegion is `false`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @cn-north-1, client region us-west-2 (cross partition), useArnRegion=true", + "expect": { + "error": "Client was configured for partition `aws` but ARN (`arn:aws-cn:s3-object-lambda:cn-north-1:123456789012:accesspoint/mybanner`) has `aws-cn`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "aws-global", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws-cn:s3-object-lambda:cn-north-1:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "aws-global", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws-cn:s3-object-lambda:cn-north-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda with dualstack", + "expect": { + "error": "S3 Object Lambda does not support Dual-stack" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true, + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": true, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @us-gov-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-gov-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.s3-object-lambda.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws-us-gov:s3-object-lambda:us-gov-east-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @us-gov-east-1, with fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-gov-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.s3-object-lambda-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws-us-gov:s3-object-lambda:us-gov-east-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda @cn-north-1, with fips", + "expect": { + "error": "Partition does not support FIPS" + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws-cn:s3-object-lambda:cn-north-1:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda with accelerate", + "expect": { + "error": "S3 Object Lambda does not support S3 Accelerate" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::Accelerate": true, + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": true, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda with invalid arn - bad service and someresource", + "expect": { + "error": "Invalid ARN: Unrecognized format: arn:aws:sqs:us-west-2:123456789012:someresource (type: someresource)" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:sqs:us-west-2:123456789012:someresource", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:sqs:us-west-2:123456789012:someresource" + } + }, + { + "documentation": "object lambda with invalid arn - invalid resource", + "expect": { + "error": "Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `bucket_name`" + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:bucket_name:mybucket" + } + }, + { + "documentation": "object lambda with invalid arn - missing region", + "expect": { + "error": "Invalid ARN: bucket ARN is missing a region" + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda::123456789012:accesspoint/mybanner" + } + }, + { + "documentation": "object lambda with invalid arn - missing account-id", + "expect": { + "error": "Invalid ARN: Missing account id" + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-west-2::accesspoint/mybanner" + } + }, + { + "documentation": "object lambda with invalid arn - account id contains invalid characters", + "expect": { + "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `123.45678.9012`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": true + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123.45678.9012:accesspoint:mybucket", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123.45678.9012:accesspoint:mybucket" + } + }, + { + "documentation": "object lambda with invalid arn - missing access point name", + "expect": { + "error": "Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided" + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint" + } + }, + { + "documentation": "object lambda with invalid arn - access point name contains invalid character: *", + "expect": { + "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `*`" + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:*" + } + }, + { + "documentation": "object lambda with invalid arn - access point name contains invalid character: .", + "expect": { + "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `my.bucket`" + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:my.bucket" + } + }, + { + "documentation": "object lambda with invalid arn - access point name contains sub resources", + "expect": { + "error": "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`." + }, + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": true, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:mybucket:object:foo" + } + }, + { + "documentation": "object lambda with custom endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://mybanner-123456789012.my-endpoint.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://my-endpoint.com", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Region": "us-west-2", + "UseFIPS": false, + "UseDualStack": false, + "Accelerate": false, + "UseArnRegion": false, + "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner", + "Endpoint": "https://my-endpoint.com" + } + }, + { + "documentation": "object lambda arn with region mismatch and UseArnRegion=false", + "expect": { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3::UseArnRegion": false + }, + "operationName": "GetObject", + "operationParams": { + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + "Key": "key" + } + } + ], + "params": { + "Accelerate": false, + "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner", + "ForcePathStyle": false, + "UseArnRegion": false, + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "___key": "key" + } + }, + { + "documentation": "WriteGetObjectResponse @ us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-object-lambda.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "WriteGetObjectResponse", + "operationParams": { + "RequestRoute": "RequestRoute", + "RequestToken": "RequestToken" + } + } + ], + "params": { + "Accelerate": false, + "UseObjectLambdaEndpoint": true, + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "WriteGetObjectResponse with custom endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://my-endpoint.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://my-endpoint.com" + }, + "operationName": "WriteGetObjectResponse", + "operationParams": { + "RequestRoute": "RequestRoute", + "RequestToken": "RequestToken" + } + } + ], + "params": { + "Accelerate": false, + "UseObjectLambdaEndpoint": true, + "Endpoint": "https://my-endpoint.com", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "WriteGetObjectResponse @ us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-object-lambda.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "WriteGetObjectResponse", + "operationParams": { + "RequestRoute": "RequestRoute", + "RequestToken": "RequestToken" + } + } + ], + "params": { + "Accelerate": false, + "UseObjectLambdaEndpoint": true, + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "WriteGetObjectResponse with fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-object-lambda-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true + }, + "operationName": "WriteGetObjectResponse", + "operationParams": { + "RequestRoute": "RequestRoute", + "RequestToken": "RequestToken" + } + } + ], + "params": { + "Accelerate": false, + "UseObjectLambdaEndpoint": true, + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "WriteGetObjectResponse with dualstack", + "expect": { + "error": "S3 Object Lambda does not support Dual-stack" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseDualStack": true + }, + "operationName": "WriteGetObjectResponse", + "operationParams": { + "RequestRoute": "RequestRoute", + "RequestToken": "RequestToken" + } + } + ], + "params": { + "Accelerate": false, + "UseObjectLambdaEndpoint": true, + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "WriteGetObjectResponse with accelerate", + "expect": { + "error": "S3 Object Lambda does not support S3 Accelerate" + }, + "params": { + "Accelerate": true, + "UseObjectLambdaEndpoint": true, + "Region": "us-east-1", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "WriteGetObjectResponse with fips in CN", + "expect": { + "error": "Partition does not support FIPS" + }, + "params": { + "Accelerate": false, + "Region": "cn-north-1", + "UseObjectLambdaEndpoint": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "WriteGetObjectResponse with invalid partition", + "expect": { + "error": "Invalid region: region was not a valid DNS name." + }, + "params": { + "Accelerate": false, + "UseObjectLambdaEndpoint": true, + "Region": "not a valid DNS name", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "WriteGetObjectResponse with an unknown partition", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-object-lambda", + "disableDoubleEncoding": true, + "signingRegion": "us-east.special" + } + ] + }, + "url": "https://s3-object-lambda.us-east.special.amazonaws.com" + } + }, + "params": { + "Accelerate": false, + "UseObjectLambdaEndpoint": true, + "Region": "us-east.special", + "UseDualStack": false, + "UseFIPS": false + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/s3/2006-03-01/examples-1.json b/models/apis/s3/2006-03-01/examples-1.json index c516f8ca36..f08ab58000 100644 --- a/models/apis/s3/2006-03-01/examples-1.json +++ b/models/apis/s3/2006-03-01/examples-1.json @@ -292,11 +292,10 @@ { "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": [ @@ -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": [ @@ -989,47 +989,37 @@ "ListMultipartUploads": [ { "input": { - "Bucket": "examplebucket", - "KeyMarker": "nextkeyfrompreviousresponse", - "MaxUploads": "2", - "UploadIdMarker": "valuefrompreviousresponse" + "Bucket": "examplebucket" }, "output": { - "Bucket": "acl1", - "IsTruncated": true, - "KeyMarker": "", - "MaxUploads": "2", - "NextKeyMarker": "someobjectkey", - "NextUploadIdMarker": "examplelo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--", - "UploadIdMarker": "", "Uploads": [ { "Initiated": "2014-05-01T05:40:58.000Z", "Initiator": { - "DisplayName": "ownder-display-name", + "DisplayName": "display-name", "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" }, "Key": "JavaFile", "Owner": { - "DisplayName": "mohanataws", - "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + "DisplayName": "display-name", + "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" }, "StorageClass": "STANDARD", - "UploadId": "gZ30jIqlUa.CInXklLQtSMJITdUnoZ1Y5GACB5UckOtspm5zbDMCkPF_qkfZzMiFZ6dksmcnqxJyIBvQMG9X9Q--" + "UploadId": "examplelUa.CInXklLQtSMJITdUnoZ1Y5GACB5UckOtspm5zbDMCkPF_qkfZzMiFZ6dksmcnqxJyIBvQMG9X9Q--" }, { "Initiated": "2014-05-01T05:41:27.000Z", "Initiator": { - "DisplayName": "ownder-display-name", + "DisplayName": "display-name", "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" }, "Key": "JavaFile", "Owner": { - "DisplayName": "ownder-display-name", + "DisplayName": "display-name", "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" }, "StorageClass": "STANDARD", - "UploadId": "b7tZSqIlo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--" + "UploadId": "examplelo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--" } ] }, @@ -1039,43 +1029,53 @@ "output": { } }, - "description": "The following example specifies the upload-id-marker and key-marker from previous truncated response to retrieve next setup of multipart uploads.", - "id": "list-next-set-of-multipart-uploads-when-previous-result-is-truncated-1482428106748", - "title": "List next set of multipart uploads when previous result is truncated" + "description": "The following example lists in-progress multipart uploads on a specific bucket.", + "id": "to-list-in-progress-multipart-uploads-on-a-bucket-1481852775260", + "title": "To list in-progress multipart uploads on a bucket" }, { "input": { - "Bucket": "examplebucket" + "Bucket": "examplebucket", + "KeyMarker": "nextkeyfrompreviousresponse", + "MaxUploads": "2", + "UploadIdMarker": "valuefrompreviousresponse" }, "output": { + "Bucket": "acl1", + "IsTruncated": true, + "KeyMarker": "", + "MaxUploads": "2", + "NextKeyMarker": "someobjectkey", + "NextUploadIdMarker": "examplelo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--", + "UploadIdMarker": "", "Uploads": [ { "Initiated": "2014-05-01T05:40:58.000Z", "Initiator": { - "DisplayName": "display-name", + "DisplayName": "ownder-display-name", "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" }, "Key": "JavaFile", "Owner": { - "DisplayName": "display-name", - "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" + "DisplayName": "mohanataws", + "ID": "852b113e7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" }, "StorageClass": "STANDARD", - "UploadId": "examplelUa.CInXklLQtSMJITdUnoZ1Y5GACB5UckOtspm5zbDMCkPF_qkfZzMiFZ6dksmcnqxJyIBvQMG9X9Q--" + "UploadId": "gZ30jIqlUa.CInXklLQtSMJITdUnoZ1Y5GACB5UckOtspm5zbDMCkPF_qkfZzMiFZ6dksmcnqxJyIBvQMG9X9Q--" }, { "Initiated": "2014-05-01T05:41:27.000Z", "Initiator": { - "DisplayName": "display-name", + "DisplayName": "ownder-display-name", "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" }, "Key": "JavaFile", "Owner": { - "DisplayName": "display-name", + "DisplayName": "ownder-display-name", "ID": "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc" }, "StorageClass": "STANDARD", - "UploadId": "examplelo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--" + "UploadId": "b7tZSqIlo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--" } ] }, @@ -1085,9 +1085,9 @@ "output": { } }, - "description": "The following example lists in-progress multipart uploads on a specific bucket.", - "id": "to-list-in-progress-multipart-uploads-on-a-bucket-1481852775260", - "title": "To list in-progress multipart uploads on a bucket" + "description": "The following example specifies the upload-id-marker and key-marker from previous truncated response to retrieve next setup of multipart uploads.", + "id": "list-next-set-of-multipart-uploads-when-previous-result-is-truncated-1482428106748", + "title": "List next set of multipart uploads when previous result is truncated" } ], "ListObjectVersions": [ @@ -1567,13 +1567,14 @@ "PutObject": [ { "input": { - "Body": "filetoupload", + "Body": "c:\\HappyFace.jpg", "Bucket": "examplebucket", - "Key": "objectkey" + "Key": "HappyFace.jpg", + "Tagging": "key1=value1&key2=value2" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "VersionId": "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ" + "VersionId": "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a" }, "comments": { "input": { @@ -1581,9 +1582,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 an object. The request specifies optional object tags. The bucket is versioned, therefore S3 returns version ID of the newly created object.", + "id": "to-upload-an-object-and-specify-optional-tags-1481762310955", + "title": "To upload an object and specify optional tags" }, { "input": { @@ -1610,14 +1611,13 @@ "Body": "filetoupload", "Bucket": "examplebucket", "Key": "exampleobject", - "Metadata": { - "metadata1": "value1", - "metadata2": "value2" - } + "ServerSideEncryption": "AES256", + "Tagging": "key1=value1&key2=value2" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "VersionId": "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0" + "ServerSideEncryption": "AES256", + "VersionId": "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt" }, "comments": { "input": { @@ -1625,20 +1625,23 @@ "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" + "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": { - "Body": "c:\\HappyFace.jpg", + "Body": "filetoupload", "Bucket": "examplebucket", - "Key": "HappyFace.jpg", - "Tagging": "key1=value1&key2=value2" + "Key": "exampleobject", + "Metadata": { + "metadata1": "value1", + "metadata2": "value2" + } }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "VersionId": "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a" + "VersionId": "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0" }, "comments": { "input": { @@ -1646,9 +1649,9 @@ "output": { } }, - "description": "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.", - "id": "to-upload-an-object-and-specify-optional-tags-1481762310955", - "title": "To upload an object and specify optional 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": { @@ -1675,16 +1678,14 @@ }, { "input": { + "ACL": "authenticated-read", "Body": "filetoupload", "Bucket": "examplebucket", - "Key": "exampleobject", - "ServerSideEncryption": "AES256", - "Tagging": "key1=value1&key2=value2" + "Key": "exampleobject" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "ServerSideEncryption": "AES256", - "VersionId": "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt" + "VersionId": "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr" }, "comments": { "input": { @@ -1692,20 +1693,19 @@ "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 uploads and object. The request specifies optional canned ACL (access control list) to all READ access to authenticated users. If the bucket is versioning enabled, S3 returns version ID in response.", + "id": "to-upload-an-object-and-specify-canned-acl-1483397779571", + "title": "To upload an object and specify canned ACL." }, { "input": { - "ACL": "authenticated-read", "Body": "filetoupload", "Bucket": "examplebucket", - "Key": "exampleobject" + "Key": "objectkey" }, "output": { "ETag": "\"6805f2cfc46c0f04559748bb039d69ae\"", - "VersionId": "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr" + "VersionId": "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ" }, "comments": { "input": { @@ -1713,9 +1713,9 @@ "output": { } }, - "description": "The following example uploads and object. The request specifies optional canned ACL (access control list) to all READ access to authenticated users. If the bucket is versioning enabled, S3 returns version ID in response.", - "id": "to-upload-an-object-and-specify-canned-acl-1483397779571", - "title": "To upload an object and specify canned ACL." + "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": [ @@ -1826,14 +1826,15 @@ "input": { "Bucket": "examplebucket", "CopySource": "/bucketname/sourceobjectkey", + "CopySourceRange": "bytes=1-100000", "Key": "examplelargeobject", - "PartNumber": "1", + "PartNumber": "2", "UploadId": "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--" }, "output": { "CopyPartResult": { - "ETag": "\"b0c6f0e7e054ab8fa2536a2677f8734d\"", - "LastModified": "2016-12-29T21:24:43.000Z" + "ETag": "\"65d16d19e65a7508a51f043180edcc36\"", + "LastModified": "2016-12-29T21:44:28.000Z" } }, "comments": { @@ -1842,23 +1843,22 @@ "output": { } }, - "description": "The following example uploads a part of a multipart upload by copying data from an existing object as data source.", - "id": "to-upload-a-part-by-copying-data-from-an-existing-object-as-data-source-1483046746348", - "title": "To upload a part by copying data from an existing object as data source" + "description": "The following example uploads a part of a multipart upload by copying a specified byte range from an existing object as data source.", + "id": "to-upload-a-part-by-copying-byte-range-from-an-existing-object-as-data-source-1483048068594", + "title": "To upload a part by copying byte range from an existing object as data source" }, { "input": { "Bucket": "examplebucket", "CopySource": "/bucketname/sourceobjectkey", - "CopySourceRange": "bytes=1-100000", "Key": "examplelargeobject", - "PartNumber": "2", + "PartNumber": "1", "UploadId": "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--" }, "output": { "CopyPartResult": { - "ETag": "\"65d16d19e65a7508a51f043180edcc36\"", - "LastModified": "2016-12-29T21:44:28.000Z" + "ETag": "\"b0c6f0e7e054ab8fa2536a2677f8734d\"", + "LastModified": "2016-12-29T21:24:43.000Z" } }, "comments": { @@ -1867,9 +1867,9 @@ "output": { } }, - "description": "The following example uploads a part of a multipart upload by copying a specified byte range from an existing object as data source.", - "id": "to-upload-a-part-by-copying-byte-range-from-an-existing-object-as-data-source-1483048068594", - "title": "To upload a part by copying byte range from an existing object as data source" + "description": "The following example uploads a part of a multipart upload by copying data from an existing object as data source.", + "id": "to-upload-a-part-by-copying-data-from-an-existing-object-as-data-source-1483046746348", + "title": "To upload a part by copying data from an existing object as data source" } ] } diff --git a/models/apis/s3control/2018-08-20/api-2.json b/models/apis/s3control/2018-08-20/api-2.json index 7793f5e227..9ffe1d6eb6 100644 --- a/models/apis/s3control/2018-08-20/api-2.json +++ b/models/apis/s3control/2018-08-20/api-2.json @@ -25,6 +25,9 @@ "output":{"shape":"CreateAccessPointResult"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "CreateAccessPointForObjectLambda":{ @@ -41,6 +44,9 @@ "output":{"shape":"CreateAccessPointForObjectLambdaResult"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "CreateBucket":{ @@ -77,6 +83,9 @@ ], "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "CreateMultiRegionAccessPoint":{ @@ -94,7 +103,10 @@ "endpoint":{ "hostPrefix":"{AccountId}." }, - "httpChecksumRequired":true + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } }, "DeleteAccessPoint":{ "name":"DeleteAccessPoint", @@ -105,6 +117,9 @@ "input":{"shape":"DeleteAccessPointRequest"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "DeleteAccessPointForObjectLambda":{ @@ -116,6 +131,9 @@ "input":{"shape":"DeleteAccessPointForObjectLambdaRequest"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "DeleteAccessPointPolicy":{ @@ -127,6 +145,9 @@ "input":{"shape":"DeleteAccessPointPolicyRequest"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "DeleteAccessPointPolicyForObjectLambda":{ @@ -138,6 +159,9 @@ "input":{"shape":"DeleteAccessPointPolicyForObjectLambdaRequest"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "DeleteBucket":{ @@ -149,6 +173,9 @@ "input":{"shape":"DeleteBucketRequest"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "DeleteBucketLifecycleConfiguration":{ @@ -160,6 +187,9 @@ "input":{"shape":"DeleteBucketLifecycleConfigurationRequest"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "DeleteBucketPolicy":{ @@ -171,6 +201,9 @@ "input":{"shape":"DeleteBucketPolicyRequest"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "DeleteBucketTagging":{ @@ -183,6 +216,9 @@ "input":{"shape":"DeleteBucketTaggingRequest"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "DeleteJobTagging":{ @@ -200,6 +236,9 @@ ], "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "DeleteMultiRegionAccessPoint":{ @@ -217,7 +256,10 @@ "endpoint":{ "hostPrefix":"{AccountId}." }, - "httpChecksumRequired":true + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } }, "DeletePublicAccessBlock":{ "name":"DeletePublicAccessBlock", @@ -228,6 +270,9 @@ "input":{"shape":"DeletePublicAccessBlockRequest"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "DeleteStorageLensConfiguration":{ @@ -239,6 +284,9 @@ "input":{"shape":"DeleteStorageLensConfigurationRequest"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "DeleteStorageLensConfigurationTagging":{ @@ -251,6 +299,9 @@ "output":{"shape":"DeleteStorageLensConfigurationTaggingResult"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "DescribeJob":{ @@ -269,6 +320,9 @@ ], "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "DescribeMultiRegionAccessPointOperation":{ @@ -282,7 +336,10 @@ "endpoint":{ "hostPrefix":"{AccountId}." }, - "httpChecksumRequired":true + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } }, "GetAccessPoint":{ "name":"GetAccessPoint", @@ -294,6 +351,9 @@ "output":{"shape":"GetAccessPointResult"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetAccessPointConfigurationForObjectLambda":{ @@ -306,6 +366,9 @@ "output":{"shape":"GetAccessPointConfigurationForObjectLambdaResult"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetAccessPointForObjectLambda":{ @@ -318,6 +381,9 @@ "output":{"shape":"GetAccessPointForObjectLambdaResult"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetAccessPointPolicy":{ @@ -330,6 +396,9 @@ "output":{"shape":"GetAccessPointPolicyResult"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetAccessPointPolicyForObjectLambda":{ @@ -342,6 +411,9 @@ "output":{"shape":"GetAccessPointPolicyForObjectLambdaResult"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetAccessPointPolicyStatus":{ @@ -354,6 +426,9 @@ "output":{"shape":"GetAccessPointPolicyStatusResult"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetAccessPointPolicyStatusForObjectLambda":{ @@ -366,6 +441,9 @@ "output":{"shape":"GetAccessPointPolicyStatusForObjectLambdaResult"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetBucket":{ @@ -378,6 +456,9 @@ "output":{"shape":"GetBucketResult"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetBucketLifecycleConfiguration":{ @@ -390,6 +471,9 @@ "output":{"shape":"GetBucketLifecycleConfigurationResult"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetBucketPolicy":{ @@ -402,6 +486,9 @@ "output":{"shape":"GetBucketPolicyResult"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetBucketTagging":{ @@ -414,6 +501,9 @@ "output":{"shape":"GetBucketTaggingResult"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetBucketVersioning":{ @@ -443,6 +533,9 @@ ], "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetMultiRegionAccessPoint":{ @@ -456,7 +549,10 @@ "endpoint":{ "hostPrefix":"{AccountId}." }, - "httpChecksumRequired":true + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } }, "GetMultiRegionAccessPointPolicy":{ "name":"GetMultiRegionAccessPointPolicy", @@ -469,7 +565,10 @@ "endpoint":{ "hostPrefix":"{AccountId}." }, - "httpChecksumRequired":true + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } }, "GetMultiRegionAccessPointPolicyStatus":{ "name":"GetMultiRegionAccessPointPolicyStatus", @@ -482,7 +581,10 @@ "endpoint":{ "hostPrefix":"{AccountId}." }, - "httpChecksumRequired":true + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } }, "GetPublicAccessBlock":{ "name":"GetPublicAccessBlock", @@ -497,6 +599,9 @@ ], "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetStorageLensConfiguration":{ @@ -509,6 +614,9 @@ "output":{"shape":"GetStorageLensConfigurationResult"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "GetStorageLensConfigurationTagging":{ @@ -521,6 +629,9 @@ "output":{"shape":"GetStorageLensConfigurationTaggingResult"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "ListAccessPoints":{ @@ -533,6 +644,9 @@ "output":{"shape":"ListAccessPointsResult"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "ListAccessPointsForObjectLambda":{ @@ -545,6 +659,9 @@ "output":{"shape":"ListAccessPointsForObjectLambdaResult"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "ListJobs":{ @@ -562,6 +679,9 @@ ], "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "ListMultiRegionAccessPoints":{ @@ -575,7 +695,10 @@ "endpoint":{ "hostPrefix":"{AccountId}." }, - "httpChecksumRequired":true + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } }, "ListRegionalBuckets":{ "name":"ListRegionalBuckets", @@ -587,6 +710,9 @@ "output":{"shape":"ListRegionalBucketsResult"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "ListStorageLensConfigurations":{ @@ -599,6 +725,9 @@ "output":{"shape":"ListStorageLensConfigurationsResult"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "PutAccessPointConfigurationForObjectLambda":{ @@ -614,6 +743,9 @@ }, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "PutAccessPointPolicy":{ @@ -629,6 +761,9 @@ }, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "PutAccessPointPolicyForObjectLambda":{ @@ -644,6 +779,9 @@ }, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "PutBucketLifecycleConfiguration":{ @@ -656,7 +794,10 @@ "endpoint":{ "hostPrefix":"{AccountId}." }, - "httpChecksumRequired":true + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } }, "PutBucketPolicy":{ "name":"PutBucketPolicy", @@ -672,7 +813,10 @@ "endpoint":{ "hostPrefix":"{AccountId}." }, - "httpChecksumRequired":true + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } }, "PutBucketTagging":{ "name":"PutBucketTagging", @@ -684,7 +828,10 @@ "endpoint":{ "hostPrefix":"{AccountId}." }, - "httpChecksumRequired":true + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } }, "PutBucketVersioning":{ "name":"PutBucketVersioning", @@ -718,6 +865,9 @@ ], "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "PutMultiRegionAccessPointPolicy":{ @@ -735,7 +885,10 @@ "endpoint":{ "hostPrefix":"{AccountId}." }, - "httpChecksumRequired":true + "httpChecksumRequired":true, + "staticContextParams":{ + "RequiresAccountId":{"value":true} + } }, "PutPublicAccessBlock":{ "name":"PutPublicAccessBlock", @@ -746,6 +899,9 @@ "input":{"shape":"PutPublicAccessBlockRequest"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "PutStorageLensConfiguration":{ @@ -761,6 +917,9 @@ }, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "PutStorageLensConfigurationTagging":{ @@ -777,6 +936,9 @@ "output":{"shape":"PutStorageLensConfigurationTaggingResult"}, "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "UpdateJobPriority":{ @@ -795,6 +957,9 @@ ], "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } }, "UpdateJobStatus":{ @@ -814,6 +979,9 @@ ], "endpoint":{ "hostPrefix":"{AccountId}." + }, + "staticContextParams":{ + "RequiresAccountId":{"value":true} } } }, @@ -1039,6 +1207,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1067,6 +1236,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1076,7 +1246,10 @@ "location":"uri", "locationName":"name" }, - "Bucket":{"shape":"BucketName"}, + "Bucket":{ + "shape":"BucketName", + "contextParam":{"name":"Bucket"} + }, "VpcConfiguration":{"shape":"VpcConfiguration"}, "PublicAccessBlockConfiguration":{"shape":"PublicAccessBlockConfiguration"} } @@ -1105,6 +1278,7 @@ }, "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" }, @@ -1145,6 +1319,7 @@ }, "OutpostId":{ "shape":"NonEmptyMaxLength64String", + "contextParam":{"name":"OutpostId"}, "location":"header", "locationName":"x-amz-outpost-id" } @@ -1175,6 +1350,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1228,6 +1404,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1259,6 +1436,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1279,6 +1457,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1299,12 +1478,14 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, "Name":{ "shape":"AccessPointName", + "contextParam":{"name":"AccessPointName"}, "location":"uri", "locationName":"name" } @@ -1319,12 +1500,14 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, "Name":{ "shape":"AccessPointName", + "contextParam":{"name":"AccessPointName"}, "location":"uri", "locationName":"name" } @@ -1339,12 +1522,14 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" } @@ -1359,12 +1544,14 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" } @@ -1379,12 +1566,14 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" } @@ -1399,12 +1588,14 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" } @@ -1419,6 +1610,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1452,6 +1644,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1475,6 +1668,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1495,6 +1689,7 @@ }, "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1515,6 +1710,7 @@ }, "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1535,6 +1731,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1561,6 +1758,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1648,6 +1846,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1674,6 +1873,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1702,6 +1902,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1728,12 +1929,14 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, "Name":{ "shape":"AccessPointName", + "contextParam":{"name":"AccessPointName"}, "location":"uri", "locationName":"name" } @@ -1754,6 +1957,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -1780,12 +1984,14 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, "Name":{ "shape":"AccessPointName", + "contextParam":{"name":"AccessPointName"}, "location":"uri", "locationName":"name" } @@ -1806,12 +2012,14 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, "Name":{ "shape":"AccessPointName", + "contextParam":{"name":"AccessPointName"}, "location":"uri", "locationName":"name" } @@ -1840,12 +2048,14 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" } @@ -1866,12 +2076,14 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" } @@ -1892,12 +2104,14 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" } @@ -1920,12 +2134,14 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" } @@ -1977,6 +2193,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2003,6 +2220,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2029,6 +2247,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2055,6 +2274,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2085,6 +2305,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2105,6 +2326,7 @@ }, "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2132,6 +2354,7 @@ }, "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2609,6 +2832,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2638,12 +2862,14 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"querystring", "locationName":"bucket" }, @@ -2672,6 +2898,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2707,6 +2934,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2736,6 +2964,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -2752,6 +2981,7 @@ }, "OutpostId":{ "shape":"NonEmptyMaxLength64String", + "contextParam":{"name":"OutpostId"}, "location":"header", "locationName":"x-amz-outpost-id" } @@ -2784,6 +3014,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -3158,6 +3389,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -3180,6 +3412,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -3202,12 +3435,14 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, "Name":{ "shape":"AccessPointName", + "contextParam":{"name":"AccessPointName"}, "location":"uri", "locationName":"name" }, @@ -3223,12 +3458,14 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" }, @@ -3250,12 +3487,14 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" }, @@ -3277,12 +3516,14 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" }, "Bucket":{ "shape":"BucketName", + "contextParam":{"name":"Bucket"}, "location":"uri", "locationName":"name" }, @@ -3336,6 +3577,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -3374,6 +3616,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -3405,6 +3648,7 @@ }, "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -3427,6 +3671,7 @@ }, "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -3450,6 +3695,7 @@ }, "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -4122,6 +4368,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -4159,6 +4406,7 @@ "members":{ "AccountId":{ "shape":"AccountId", + "contextParam":{"name":"AccountId"}, "hostLabel":true, "location":"header", "locationName":"x-amz-account-id" @@ -4210,5 +4458,11 @@ "max":1024, "min":1 } + }, + "clientContextParams":{ + "UseArnRegion":{ + "documentation":"Enables this client to use an ARN's region when constructing an endpoint instead of the client's configured region.", + "type":"boolean" + } } } diff --git a/models/apis/s3control/2018-08-20/endpoint-rule-set-1.json b/models/apis/s3control/2018-08-20/endpoint-rule-set-1.json new file mode 100644 index 0000000000..f739e6328c --- /dev/null +++ b/models/apis/s3control/2018-08-20/endpoint-rule-set-1.json @@ -0,0 +1,2351 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + }, + "AccountId": { + "required": false, + "documentation": "The Account ID used to send the request. This is an optional parameter that will be set automatically for operations that require it.", + "type": "String" + }, + "RequiresAccountId": { + "required": false, + "documentation": "Internal parameter for operations that require account id host prefix.", + "type": "Boolean" + }, + "OutpostId": { + "required": false, + "documentation": "The Outpost ID. Some operations have an optional OutpostId which should be used in endpoint construction.", + "type": "String" + }, + "Bucket": { + "required": false, + "documentation": "The S3 bucket used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 bucket.", + "type": "String" + }, + "AccessPointName": { + "required": false, + "documentation": "The S3 AccessPointName used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 AccessPoint.", + "type": "String" + }, + "UseArnRegion": { + "builtIn": "AWS::S3Control::UseArnRegion", + "required": false, + "documentation": "When an Access Point ARN is provided and this flag is enabled, the SDK MUST use the ARN's region when constructing the endpoint instead of the client's configured region.", + "type": "Boolean" + } + }, + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "OutpostId" + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "error": "Partition does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "RequiresAccountId" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "RequiresAccountId" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + } + ] + } + ], + "error": "AccountId is required but not set", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "AccountId" + }, + false + ] + } + ] + } + ], + "error": "AccountId must only contain a-z, A-Z, 0-9 and `-`.", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "OutpostId" + }, + false + ] + } + ] + } + ], + "error": "OutpostId must only contain a-z, A-Z, 0-9 and `-`.", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "Region" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid configuration: Outposts do not support dual-stack", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3-outposts" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "endpoint": { + "url": "https://s3-outposts-fips.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3-outposts" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3-outposts.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3-outposts" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid region: region was not a valid DNS name.", + "type": "error" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccessPointName" + } + ] + }, + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "AccessPointName" + } + ], + "assign": "accessPointArn" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "accessPointArn" + }, + "resourceId[0]" + ], + "assign": "arnType" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "accessPointArn" + }, + "service" + ] + }, + "s3-outposts" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid configuration: Outpost Access Points do not support dual-stack", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "accessPointArn" + }, + "resourceId[1]" + ], + "assign": "outpostId" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "outpostId" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "UseArnRegion" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseArnRegion" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "accessPointArn" + }, + "region" + ] + }, + "{Region}" + ] + } + ] + } + ], + "error": "Invalid configuration: region from ARN `{accessPointArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "accessPointArn" + }, + "region" + ] + } + ], + "assign": "arnPartition" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arnPartition" + }, + "name" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "accessPointArn" + }, + "region" + ] + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "accessPointArn" + }, + "accountId" + ] + }, + "" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "accessPointArn" + }, + "accountId" + ] + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "AccountId" + }, + "{accessPointArn#accountId}" + ] + } + ] + } + ], + "error": "Invalid ARN: the accountId specified in the ARN (`{accessPointArn#accountId}`) does not match the parameter (`{AccountId}`)", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "accessPointArn" + }, + "resourceId[2]" + ], + "assign": "outpostType" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "accessPointArn" + }, + "resourceId[3]" + ], + "assign": "accessPointName" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "outpostType" + }, + "accesspoint" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "endpoint": { + "url": "https://s3-outposts-fips.{accessPointArn#region}.{arnPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{accessPointArn#region}", + "disableDoubleEncoding": true, + "signingName": "s3-outposts" + } + ] + }, + "headers": { + "x-amz-account-id": [ + "{accessPointArn#accountId}" + ], + "x-amz-outpost-id": [ + "{outpostId}" + ] + } + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{accessPointArn#region}", + "disableDoubleEncoding": true, + "signingName": "s3-outposts" + } + ] + }, + "headers": { + "x-amz-account-id": [ + "{accessPointArn#accountId}" + ], + "x-amz-outpost-id": [ + "{outpostId}" + ] + } + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3-outposts.{accessPointArn#region}.{arnPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{accessPointArn#region}", + "disableDoubleEncoding": true, + "signingName": "s3-outposts" + } + ] + }, + "headers": { + "x-amz-account-id": [ + "{accessPointArn#accountId}" + ], + "x-amz-outpost-id": [ + "{outpostId}" + ] + } + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Expected an outpost type `accesspoint`, found `{outpostType}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: expected an access point name", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: Expected a 4-component resource", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointArn#accountId}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: missing account ID", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid region in ARN: `{accessPointArn#region}` (invalid DNS name)", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Client was configured for partition `{partitionResult#name}` but ARN has `{arnPartition#name}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Could not load partition for ARN region `{accessPointArn#region}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`., found: `{outpostId}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The Outpost Id was not set", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: No ARN type specified", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Bucket" + } + ] + }, + { + "fn": "aws.parseArn", + "argv": [ + { + "ref": "Bucket" + } + ], + "assign": "bucketArn" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[0]" + ], + "assign": "arnType" + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "arnType" + }, + "" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "service" + ] + }, + "s3-outposts" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid configuration: Outpost buckets do not support dual-stack", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[1]" + ], + "assign": "outpostId" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "outpostId" + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "UseArnRegion" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseArnRegion" + }, + false + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + "{Region}" + ] + } + ] + } + ], + "error": "Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + } + ], + "assign": "arnPartition" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "arnPartition" + }, + "name" + ] + }, + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "region" + ] + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "accountId" + ] + }, + "" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "accountId" + ] + }, + false + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "AccountId" + }, + "{bucketArn#accountId}" + ] + } + ] + } + ], + "error": "Invalid ARN: the accountId specified in the ARN (`{bucketArn#accountId}`) does not match the parameter (`{AccountId}`)", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[2]" + ], + "assign": "outpostType" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "bucketArn" + }, + "resourceId[3]" + ], + "assign": "bucketName" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "stringEquals", + "argv": [ + { + "ref": "outpostType" + }, + "bucket" + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "endpoint": { + "url": "https://s3-outposts-fips.{bucketArn#region}.{arnPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{bucketArn#region}", + "disableDoubleEncoding": true, + "signingName": "s3-outposts" + } + ] + }, + "headers": { + "x-amz-account-id": [ + "{bucketArn#accountId}" + ], + "x-amz-outpost-id": [ + "{outpostId}" + ] + } + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{bucketArn#region}", + "disableDoubleEncoding": true, + "signingName": "s3-outposts" + } + ] + }, + "headers": { + "x-amz-account-id": [ + "{bucketArn#accountId}" + ], + "x-amz-outpost-id": [ + "{outpostId}" + ] + } + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "https://s3-outposts.{bucketArn#region}.{arnPartition#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{bucketArn#region}", + "disableDoubleEncoding": true, + "signingName": "s3-outposts" + } + ] + }, + "headers": { + "x-amz-account-id": [ + "{bucketArn#accountId}" + ], + "x-amz-outpost-id": [ + "{outpostId}" + ] + } + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: Expected an outpost type `bucket`, found `{outpostType}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: expected a bucket name", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: Expected a 4-component resource", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: missing account ID", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Client was configured for partition `{partitionResult#name}` but ARN has `{arnPartition#name}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Could not load partition for ARN region `{bucketArn#region}`", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`., found: `{outpostId}`", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: The Outpost Id was not set", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid ARN: No ARN type specified", + "type": "error" + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "partitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "Region" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "stringEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "partitionResult" + }, + "name" + ] + }, + "aws-cn" + ] + } + ], + "error": "Partition does not support FIPS", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "RequiresAccountId" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "RequiresAccountId" + }, + true + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + } + ] + } + ], + "error": "AccountId is required but not set", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + }, + { + "fn": "not", + "argv": [ + { + "fn": "isValidHostLabel", + "argv": [ + { + "ref": "AccountId" + }, + false + ] + } + ] + } + ], + "error": "AccountId must only contain a-z, A-Z, 0-9 and `-`.", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "RequiresAccountId" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "RequiresAccountId" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + } + ], + "endpoint": { + "url": "{url#scheme}://{AccountId}.{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [], + "endpoint": { + "url": "{url#scheme}://{url#authority}{url#path}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "RequiresAccountId" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "RequiresAccountId" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + } + ], + "endpoint": { + "url": "https://{AccountId}.s3-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://s3-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "RequiresAccountId" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "RequiresAccountId" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + } + ], + "endpoint": { + "url": "https://{AccountId}.s3-control-fips.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3-control-fips.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "RequiresAccountId" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "RequiresAccountId" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + } + ], + "endpoint": { + "url": "https://{AccountId}.s3-control.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "endpoint": { + "url": "https://s3-control.dualstack.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "RequiresAccountId" + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "RequiresAccountId" + }, + true + ] + }, + { + "fn": "isSet", + "argv": [ + { + "ref": "AccountId" + } + ] + } + ], + "endpoint": { + "url": "https://{AccountId}.s3-control.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + false + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + false + ] + } + ], + "endpoint": { + "url": "https://s3-control.{Region}.{partitionResult#dnsSuffix}", + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingRegion": "{Region}", + "disableDoubleEncoding": true, + "signingName": "s3" + } + ] + }, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Invalid region: region was not a valid DNS name.", + "type": "error" + } + ] + } + ] + }, + { + "conditions": [], + "error": "A valid partition could not be determined", + "type": "error" + } + ] + } + ] + } + ] + }, + { + "conditions": [], + "error": "Region must be set", + "type": "error" + } + ] + } + ] +} \ No newline at end of file diff --git a/models/apis/s3control/2018-08-20/endpoint-tests-1.json b/models/apis/s3control/2018-08-20/endpoint-tests-1.json new file mode 100644 index 0000000000..98a67a9280 --- /dev/null +++ b/models/apis/s3control/2018-08-20/endpoint-tests-1.json @@ -0,0 +1,3404 @@ +{ + "testCases": [ + { + "documentation": "Vanilla outposts without ARN region + access point ARN@us-west-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "us-west-2", + "RequiresAccountId": true, + "S3Control::UseArnRegion": false, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Vanilla outposts with ARN region + access point ARN@us-west-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "us-west-2", + "RequiresAccountId": true, + "S3Control::UseArnRegion": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "accept an access point ARN@us-west-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "vanilla outposts china@cn-north-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.cn-north-1.amazonaws.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1" + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws-cn:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "cn-north-1" + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws-cn:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws-cn:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "cn-north-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "gov region@us-west-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "gov cloud with fips@us-west-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseFIPS": true + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "govcloud with fips + arn region@us-gov-west-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-gov-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.us-gov-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-gov-west-1", + "AWS::UseFIPS": true + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "us-gov-west-1", + "AWS::UseFIPS": true + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "us-gov-west-1", + "RequiresAccountId": true, + "S3Control::UseArnRegion": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "gov region@cn-north-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.cn-north-1.amazonaws.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1" + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws-cn:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "cn-north-1" + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws-cn:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws-cn:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "cn-north-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "gov cloud with fips@cn-north-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.cn-north-1.amazonaws.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseFIPS": true + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws-cn:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseFIPS": true + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws-cn:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws-cn:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "cn-north-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "govcloud with fips + arn region@us-gov-west-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-gov-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.us-gov-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-gov-west-1", + "AWS::UseFIPS": true + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "us-gov-west-1", + "AWS::UseFIPS": true + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "us-gov-west-1", + "RequiresAccountId": true, + "S3Control::UseArnRegion": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "gov region@af-south-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1" + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:af-south-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "af-south-1" + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:af-south-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws:s3-outposts:af-south-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "af-south-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "gov cloud with fips@af-south-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseFIPS": true + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:af-south-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "af-south-1", + "AWS::UseFIPS": true + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:af-south-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws:s3-outposts:af-south-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "af-south-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "govcloud with fips + arn region@us-gov-west-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-gov-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.us-gov-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-gov-west-1", + "AWS::UseFIPS": true + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "us-gov-west-1", + "AWS::UseFIPS": true + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "us-gov-west-1", + "RequiresAccountId": true, + "S3Control::UseArnRegion": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "CreateBucket + OutpostId = outposts endpoint@us-east-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-east-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2" + }, + "operationName": "CreateBucket", + "operationParams": { + "Bucket": "blah", + "OutpostId": "123" + } + } + ], + "params": { + "Bucket": "blah", + "Operation": "CreateBucket", + "OutpostId": "123", + "Region": "us-east-2", + "RequiresAccountId": false, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "CreateBucket + OutpostId with fips = outposts endpoint@us-east-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.us-east-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2", + "AWS::UseFIPS": true + }, + "operationName": "CreateBucket", + "operationParams": { + "Bucket": "blah", + "OutpostId": "123" + } + } + ], + "params": { + "Bucket": "blah", + "Operation": "CreateBucket", + "OutpostId": "123", + "Region": "us-east-2", + "RequiresAccountId": false, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "CreateBucket without OutpostId = regular endpoint@us-east-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-control.us-east-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2" + }, + "operationName": "CreateBucket", + "operationParams": { + "Bucket": "blah" + } + } + ], + "params": { + "Bucket": "blah", + "Operation": "CreateBucket", + "Region": "us-east-2", + "RequiresAccountId": false, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "ListRegionalBuckets + OutpostId = outposts endpoint@us-east-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-east-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2" + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "AccountId": "123", + "OutpostId": "op-123" + } + } + ], + "params": { + "AccountId": "123", + "Operation": "ListRegionalBuckets", + "OutpostId": "op-123", + "Region": "us-east-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "ListRegionalBuckets without OutpostId = regular endpoint@us-east-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://123.s3-control.us-east-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2" + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "AccountId": "123" + } + } + ], + "params": { + "AccountId": "123", + "Operation": "ListRegionalBuckets", + "Region": "us-east-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "ListRegionalBucket + OutpostId with fips = outposts endpoint@us-east-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.us-east-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2", + "AWS::UseFIPS": true + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "AccountId": "123", + "OutpostId": "op-123" + } + } + ], + "params": { + "AccountId": "123", + "Operation": "CreateBucket", + "OutpostId": "op-123", + "Region": "us-east-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "outpost access points do not support dualstack@us-west-2", + "expect": { + "error": "Invalid configuration: Outpost Access Points do not support dual-stack" + }, + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "outpost access points do not support dualstack@cn-north-1", + "expect": { + "error": "Invalid configuration: Outpost Access Points do not support dual-stack" + }, + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "cn-north-1", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "outpost access points do not support dualstack@af-south-1", + "expect": { + "error": "Invalid configuration: Outpost Access Points do not support dual-stack" + }, + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "af-south-1", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "invalid ARN: must be include outpost ID@us-west-2", + "expect": { + "error": "Invalid ARN: The Outpost Id was not set" + }, + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost", + "AccountId": "123456789012", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "invalid ARN: must specify access point@us-west-2", + "expect": { + "error": "Invalid ARN: Expected a 4-component resource" + }, + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "invalid ARN@us-west-2", + "expect": { + "error": "Invalid ARN: Expected a 4-component resource" + }, + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:myaccesspoint", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "when set, AccountId drives AP construction@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://myid-1234.s3-control.us-west-2.amazonaws.com" + } + }, + "params": { + "AccessPointName": "myaccesspoint", + "AccountId": "myid-1234", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Account ID set inline and in ARN but they both match@us-west-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3Control::UseArnRegion": false + }, + "operationName": "GetAccessPoint", + "operationParams": { + "AccountId": "123456789012", + "Name": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseArnRegion": false, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Account ID set inline and in ARN and they do not match@us-west-2", + "expect": { + "error": "Invalid ARN: the accountId specified in the ARN (`123456789012`) does not match the parameter (`9999999`)" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3Control::UseArnRegion": false + }, + "operationName": "GetAccessPoint", + "operationParams": { + "AccountId": "9999999", + "Name": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "9999999", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseArnRegion": false, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "get access point prefixed with account id using endpoint url@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://123456789012.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com" + }, + "operationName": "GetAccessPoint", + "operationParams": { + "AccountId": "123456789012", + "Name": "apname" + } + } + ], + "params": { + "AccessPointName": "apname", + "AccountId": "123456789012", + "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com", + "Operation": "GetAccessPoint", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "endpoint url with s3-outposts@us-west-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://beta.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + } + ], + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Endpoint": "https://beta.example.com", + "Operation": "GetAccessPoint", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "access point name with a bucket arn@us-west-2", + "expect": { + "error": "Expected an outpost type `accesspoint`, found `bucket`" + }, + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Endpoint": "beta.example.com", + "Operation": "GetAccessPoint", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "bucket arn with access point name@us-west-2", + "expect": { + "error": "Invalid ARN: Expected an outpost type `bucket`, found `accesspoint`" + }, + "params": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Endpoint": "beta.example.com", + "Operation": "GetBucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "create bucket with outposts@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://beta.example.com" + } + }, + "params": { + "Bucket": "bucketname", + "Endpoint": "https://beta.example.com", + "Operation": "CreateBucket", + "OutpostId": "op-123", + "Region": "us-west-2", + "RequiresAccountId": false, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "get bucket with endpoint_url@us-west-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://beta.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Endpoint": "https://beta.example.com", + "Operation": "GetBucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "ListRegionalBucket + OutpostId endpoint url@us-east-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://beta.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2", + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "AccountId": "123", + "OutpostId": "op-123" + } + } + ], + "params": { + "AccountId": "123", + "Endpoint": "https://beta.example.com", + "Operation": "CreateBucket", + "OutpostId": "op-123", + "Region": "us-east-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "ListRegionalBucket + OutpostId + fips + endpoint url@us-east-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://beta.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2", + "AWS::UseFIPS": true, + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "AccountId": "123", + "OutpostId": "op-123" + } + } + ], + "params": { + "AccountId": "123", + "Endpoint": "https://beta.example.com", + "Operation": "CreateBucket", + "OutpostId": "op-123", + "Region": "us-east-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "CreateBucket + OutpostId endpoint url@us-east-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://beta.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2", + "AWS::UseFIPS": true, + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "CreateBucket", + "operationParams": { + "Bucket": "blah", + "OutpostId": "123" + } + } + ], + "params": { + "Bucket": "blah", + "Endpoint": "https://beta.example.com", + "Operation": "CreateBucket", + "OutpostId": "123", + "Region": "us-east-2", + "RequiresAccountId": false, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "dualstack cannot be used with outposts when an endpoint URL is set@us-west-2.", + "expect": { + "error": "Invalid configuration: Outpost Access Points do not support dual-stack" + }, + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Endpoint": "https://beta.example.com", + "Operation": "GetAccessPoint", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "Dual-stack cannot be used with outposts@us-west-2", + "expect": { + "error": "Invalid configuration: Outposts do not support dual-stack" + }, + "params": { + "Bucket": "bucketname", + "Endpoint": "https://beta.example.com", + "Operation": "CreateBucket", + "OutpostId": "op-123", + "Region": "us-west-2", + "RequiresAccountId": false, + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "vanilla bucket arn requires account id@us-west-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-west-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "CreateAccessPoint", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Name": "apname" + } + } + ], + "params": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "__name": "apname" + } + }, + { + "documentation": "bucket arn with UseArnRegion = true (arn region supercedes client configured region)@us-west-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "S3Control::UseArnRegion": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "bucket ARN in gov partition (non-fips)@us-gov-east-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-gov-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-gov-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-gov-east-1" + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-gov-east-1", + "RequiresAccountId": true, + "S3Control::UseArnRegion": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "bucket ARN in gov partition with FIPS@us-gov-west-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-gov-west-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.us-gov-west-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-gov-west-1", + "AWS::UseFIPS": true + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws-us-gov:s3-outposts:us-gov-west-1:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws-us-gov:s3-outposts:us-gov-west-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-gov-west-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "bucket ARN in aws partition with FIPS@us-east-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.us-east-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2", + "AWS::UseFIPS": true + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-2:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws:s3-outposts:us-east-2:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-east-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "Outposts do not support dualstack@us-west-2", + "expect": { + "error": "Invalid configuration: Outpost buckets do not support dual-stack" + }, + "params": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "vanilla bucket arn requires account id@cn-north-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.cn-north-1.amazonaws.com.cn" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1" + }, + "operationName": "CreateAccessPoint", + "operationParams": { + "Bucket": "arn:aws-cn:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Name": "apname" + } + } + ], + "params": { + "Bucket": "arn:aws-cn:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "cn-north-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "__name": "apname" + } + }, + { + "documentation": "bucket arn with UseArnRegion = true (arn region supercedes client configured region)@us-west-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "S3Control::UseArnRegion": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "bucket ARN in gov partition (non-fips)@us-gov-east-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-gov-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-gov-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-gov-east-1" + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-gov-east-1", + "RequiresAccountId": true, + "S3Control::UseArnRegion": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "bucket ARN in gov partition with FIPS@us-gov-west-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-gov-west-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.us-gov-west-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-gov-west-1", + "AWS::UseFIPS": true + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws-us-gov:s3-outposts:us-gov-west-1:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws-us-gov:s3-outposts:us-gov-west-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-gov-west-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "bucket ARN in aws partition with FIPS@us-east-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.us-east-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2", + "AWS::UseFIPS": true + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-2:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws:s3-outposts:us-east-2:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-east-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "Outposts do not support dualstack@us-west-2", + "expect": { + "error": "Invalid configuration: Outpost buckets do not support dual-stack" + }, + "params": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "vanilla bucket arn requires account id@af-south-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "af-south-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.af-south-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "af-south-1" + }, + "operationName": "CreateAccessPoint", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:af-south-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Name": "apname" + } + } + ], + "params": { + "Bucket": "arn:aws:s3-outposts:af-south-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "af-south-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false, + "__name": "apname" + } + }, + { + "documentation": "bucket arn with UseArnRegion = true (arn region supercedes client configured region)@us-west-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "S3Control::UseArnRegion": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "bucket ARN in gov partition (non-fips)@us-gov-east-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-gov-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-gov-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-gov-east-1" + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws-us-gov:s3-outposts:us-gov-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-gov-east-1", + "RequiresAccountId": true, + "S3Control::UseArnRegion": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "bucket ARN in gov partition with FIPS@us-gov-west-1", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-gov-west-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.us-gov-west-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-gov-west-1", + "AWS::UseFIPS": true + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws-us-gov:s3-outposts:us-gov-west-1:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws-us-gov:s3-outposts:us-gov-west-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-gov-west-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "bucket ARN in aws partition with FIPS@us-east-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts-fips.us-east-2.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2", + "AWS::UseFIPS": true + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-2:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws:s3-outposts:us-east-2:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-east-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "Outposts do not support dualstack@us-west-2", + "expect": { + "error": "Invalid configuration: Outpost buckets do not support dual-stack" + }, + "params": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "Invalid ARN: missing outpost id and bucket@us-west-2", + "expect": { + "error": "Invalid ARN: The Outpost Id was not set" + }, + "params": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Invalid ARN: missing bucket@us-west-2", + "expect": { + "error": "Invalid ARN: Expected a 4-component resource" + }, + "params": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Invalid ARN: missing outpost and bucket ids@us-west-2", + "expect": { + "error": "Invalid ARN: Expected a 4-component resource" + }, + "params": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:bucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Invalid ARN: missing bucket id@us-west-2", + "expect": { + "error": "Invalid ARN: expected a bucket name" + }, + "params": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:bucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "account id inserted into hostname@us-west-2", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://1234567890.s3-control.us-west-2.amazonaws.com" + } + }, + "params": { + "AccountId": "1234567890", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "account id prefix with dualstack@us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://1234567890.s3-control.dualstack.us-east-1.amazonaws.com" + } + }, + "params": { + "AccountId": "1234567890", + "Region": "us-east-1", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "account id prefix with fips@us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://1234567890.s3-control-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "AccountId": "1234567890", + "Region": "us-east-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "custom account id prefix with fips@us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://1234567890-aBC.s3-control-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "AccountId": "1234567890-aBC", + "Region": "us-east-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "standard url @ us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-control.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1" + } + }, + { + "documentation": "fips url @ us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-control-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true + } + }, + { + "documentation": "dualstack url @ us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-control.dualstack.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "fips,dualstack url @ us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-control-fips.dualstack.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "standard url @ cn-north-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "cn-north-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-control.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1" + } + }, + { + "documentation": "fips @ cn-north-1", + "expect": { + "error": "Partition does not support FIPS" + }, + "params": { + "Region": "cn-north-1", + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "custom account id prefix @us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://1234567890-aBC.s3-control.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "AccountId": "1234567890-aBC" + } + } + ], + "params": { + "AccountId": "1234567890-aBC", + "Region": "us-east-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "invalid account id prefix @us-east-1", + "expect": { + "error": "AccountId must only contain a-z, A-Z, 0-9 and `-`." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1" + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "AccountId": "/?invalid¬-host*label" + } + } + ], + "params": { + "AccountId": "/?invalid¬-host*label", + "Region": "us-east-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "custom account id prefix with fips@us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://1234567890-aBC.s3-control-fips.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "AccountId": "1234567890-aBC" + } + } + ], + "params": { + "AccountId": "1234567890-aBC", + "Region": "us-east-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "custom account id prefix with dualstack,fips@us-east-1", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://1234567890-aBC.s3-control-fips.dualstack.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "AWS::UseDualStack": true + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "AccountId": "1234567890-aBC" + } + } + ], + "params": { + "AccountId": "1234567890-aBC", + "Region": "us-east-1", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": true + } + }, + { + "documentation": "custom account id with custom endpoint", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://1234567890-aBC.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "SDK::Endpoint": "https://example.com" + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "AccountId": "1234567890-aBC" + } + } + ], + "params": { + "AccountId": "1234567890-aBC", + "Region": "us-east-1", + "RequiresAccountId": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "RequiresAccountId with AccountId unset", + "expect": { + "error": "AccountId is required but not set" + }, + "params": { + "Region": "us-east-1", + "RequiresAccountId": true + } + }, + { + "documentation": "RequiresAccountId with AccountId unset and custom endpoint", + "expect": { + "error": "AccountId is required but not set" + }, + "params": { + "Region": "us-east-1", + "Endpoint": "https://beta.example.com", + "RequiresAccountId": true + } + }, + { + "documentation": "RequiresAccountId with invalid AccountId and custom endpoint", + "expect": { + "error": "AccountId must only contain a-z, A-Z, 0-9 and `-`." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "AccountId": "/?invalid¬-host*label" + } + } + ], + "params": { + "Region": "us-east-1", + "Endpoint": "https://beta.example.com", + "AccountId": "/?invalid¬-host*label", + "RequiresAccountId": true + } + }, + { + "documentation": "account id with custom endpoint, fips and dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://1234567890-aBC.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-1", + "AWS::UseFIPS": true, + "SDK::Endpoint": "https://example.com" + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "AccountId": "1234567890-aBC" + } + } + ], + "params": { + "AccountId": "1234567890-aBC", + "Region": "us-east-1", + "RequiresAccountId": true, + "Endpoint": "https://example.com", + "UseFIPS": true, + "UseDualstack": true + } + }, + { + "documentation": "custom endpoint, fips and dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "Endpoint": "https://example.com", + "UseFIPS": true, + "UseDualstack": true + } + }, + { + "documentation": "custom endpoint, fips", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "Endpoint": "https://example.com", + "UseFIPS": true, + "UseDualstack": false + } + }, + { + "documentation": "custom endpoint, dualstack", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "Endpoint": "https://example.com", + "UseFIPS": false, + "UseDualstack": true + } + }, + { + "documentation": "region not set", + "expect": { + "error": "Region must be set" + } + }, + { + "documentation": "invalid partition", + "expect": { + "error": "Invalid region: region was not a valid DNS name." + }, + "params": { + "Region": "invalid-region 42" + } + }, + { + "documentation": "ListRegionalBuckets + OutpostId without accountId set.", + "expect": { + "error": "AccountId is required but not set" + }, + "params": { + "Operation": "ListRegionalBuckets", + "OutpostId": "op-123", + "Region": "us-east-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "ListRegionalBuckets + OutpostId with invalid accountId set.", + "expect": { + "error": "AccountId must only contain a-z, A-Z, 0-9 and `-`." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-east-2" + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "OutpostId": "op-123", + "AccountId": "/?invalid¬-host*label" + } + } + ], + "params": { + "AccountId": "/?invalid¬-host*label", + "Operation": "ListRegionalBuckets", + "OutpostId": "op-123", + "Region": "us-east-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "accesspoint set but missing accountId", + "expect": { + "error": "AccountId is required but not set" + }, + "params": { + "AccessPointName": "myaccesspoint", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "outpost accesspoint ARN with missing accountId", + "expect": { + "error": "Invalid ARN: missing account ID" + }, + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2::outpost:op-01234567890123456:outpost:op1", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "bucket ARN with missing accountId", + "expect": { + "error": "Invalid ARN: missing account ID" + }, + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2::outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "endpoint url with accesspoint (non-arn)", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://123456789012.beta.example.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "apname", + "AccountId": "123456789012" + } + } + ], + "params": { + "AccessPointName": "apname", + "Endpoint": "https://beta.example.com", + "AccountId": "123456789012", + "Operation": "GetAccessPoint", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "access point name with an accesspoint arn@us-west-2", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://beta.example.com" + } + }, + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Endpoint": "https://beta.example.com", + "Operation": "GetAccessPoint", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Dualstack + Custom endpoint is not supported(non-arn)", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true, + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "apname", + "AccountId": "123456789012" + } + } + ], + "params": { + "AccessPointName": "apname", + "Endpoint": "https://beta.example.com", + "AccountId": "123456789012", + "Operation": "GetAccessPoint", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "get bucket with endpoint_url and dualstack is not supported@us-west-2", + "expect": { + "error": "Invalid configuration: Outpost buckets do not support dual-stack" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::UseDualStack": true, + "SDK::Endpoint": "https://beta.example.com" + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Endpoint": "https://beta.example.com", + "Operation": "GetBucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": true, + "UseFIPS": false + } + }, + { + "documentation": "ListRegionalBuckets + OutpostId with fips in CN.", + "expect": { + "error": "Partition does not support FIPS" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "cn-north-1", + "AWS::UseFIPS": true + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "OutpostId": "op-123", + "AccountId": "0123456789012" + } + } + ], + "params": { + "AccountId": "0123456789012", + "Operation": "ListRegionalBuckets", + "OutpostId": "op-123", + "Region": "cn-north-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": true + } + }, + { + "documentation": "ListRegionalBuckets + invalid OutpostId.", + "expect": { + "error": "OutpostId must only contain a-z, A-Z, 0-9 and `-`." + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-1" + }, + "operationName": "ListRegionalBuckets", + "operationParams": { + "OutpostId": "?outpost/invalid+", + "AccountId": "0123456789012" + } + } + ], + "params": { + "AccountId": "0123456789012", + "Operation": "ListRegionalBuckets", + "OutpostId": "?outpost/invalid+", + "Region": "us-west-1", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "bucket ARN with mismatched accountId", + "expect": { + "error": "Invalid ARN: the accountId specified in the ARN (`999999`) does not match the parameter (`0123456789012`)" + }, + "params": { + "Bucket": "arn:aws:s3-outposts:us-west-2:999999:outpost:op-01234567890123456:bucket:mybucket", + "AccountId": "0123456789012", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "OutpostId with invalid region", + "expect": { + "error": "Invalid region: region was not a valid DNS name." + }, + "params": { + "Operation": "ListRegionalBuckets", + "OutpostId": "op-123", + "Region": "invalid-region 42", + "AccountId": "0123456", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "OutpostId with RequireAccountId unset", + "expect": { + "endpoint": { + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-west-2", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-west-2.amazonaws.com" + } + }, + "params": { + "Operation": "ListRegionalBuckets", + "OutpostId": "op-123", + "Region": "us-west-2", + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Outpost Accesspoint ARN with arn region and client region mismatch with UseArnRegion=false", + "expect": { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3Control::UseArnRegion": false + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3Control::UseArnRegion": false + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseArnRegion": false, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Outpost Bucket ARN with arn region and client region mismatch with UseArnRegion=false", + "expect": { + "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "SDK::Endpoint": "https://beta.example.com", + "AWS::S3Control::UseArnRegion": false + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Endpoint": "https://beta.example.com", + "Operation": "GetBucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseArnRegion": false, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Accesspoint ARN with region mismatch and UseArnRegion unset", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Bucket ARN with region mismatch and UseArnRegion unset", + "expect": { + "endpoint": { + "headers": { + "x-amz-account-id": [ + "123456789012" + ], + "x-amz-outpost-id": [ + "op-01234567890123456" + ] + }, + "properties": { + "authSchemes": [ + { + "name": "sigv4", + "signingName": "s3-outposts", + "signingRegion": "us-east-1", + "disableDoubleEncoding": true + } + ] + }, + "url": "https://s3-outposts.us-east-1.amazonaws.com" + } + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2" + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Outpost Bucket ARN with partition mismatch with UseArnRegion=true", + "expect": { + "error": "Client was configured for partition `aws` but ARN has `aws-cn`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3Control::UseArnRegion": true + }, + "operationName": "GetBucket", + "operationParams": { + "Bucket": "arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:bucket:mybucket" + } + } + ], + "params": { + "Bucket": "arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:bucket:mybucket", + "Operation": "GetBucket", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseArnRegion": true, + "UseDualStack": false, + "UseFIPS": false + } + }, + { + "documentation": "Accesspoint ARN with partition mismatch and UseArnRegion=true", + "expect": { + "error": "Client was configured for partition `aws` but ARN has `aws-cn`" + }, + "operationInputs": [ + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3Control::UseArnRegion": true + }, + "operationName": "GetAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012" + } + }, + { + "builtInParams": { + "AWS::Region": "us-west-2", + "AWS::S3Control::UseArnRegion": true + }, + "operationName": "DeleteAccessPoint", + "operationParams": { + "Name": "arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint" + } + } + ], + "params": { + "AccessPointName": "arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "AccountId": "123456789012", + "Region": "us-west-2", + "RequiresAccountId": true, + "UseDualStack": false, + "UseArnRegion": true, + "UseFIPS": false + } + }, + { + "documentation": "Accesspoint ARN with region mismatch, UseArnRegion=false and custom endpoint", + "expect": { + "error": "Invalid configuration: region from ARN `cn-north-1` does not match client region `us-west-2` and UseArnRegion is `false`" + }, + "params": { + "AccessPointName": "arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint", + "Region": "us-west-2", + "Endpoint": "https://example.com", + "RequiresAccountId": true, + "UseDualStack": false, + "UseArnRegion": false, + "UseFIPS": false + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/support-app/2021-08-20/api-2.json b/models/apis/support-app/2021-08-20/api-2.json index 3c123a8807..2c8433d68a 100644 --- a/models/apis/support-app/2021-08-20/api-2.json +++ b/models/apis/support-app/2021-08-20/api-2.json @@ -135,6 +135,23 @@ {"shape":"ValidationException"} ] }, + "RegisterSlackWorkspaceForOrganization":{ + "name":"RegisterSlackWorkspaceForOrganization", + "http":{ + "method":"POST", + "requestUri":"/control/register-slack-workspace-for-organization", + "responseCode":200 + }, + "input":{"shape":"RegisterSlackWorkspaceForOrganizationRequest"}, + "output":{"shape":"RegisterSlackWorkspaceForOrganizationResult"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ] + }, "UpdateSlackChannelConfiguration":{ "name":"UpdateSlackChannelConfiguration", "http":{ @@ -165,6 +182,13 @@ }, "exception":true }, + "AccountType":{ + "type":"string", + "enum":[ + "management", + "member" + ] + }, "ConflictException":{ "type":"structure", "members":{ @@ -305,6 +329,21 @@ "members":{ } }, + "RegisterSlackWorkspaceForOrganizationRequest":{ + "type":"structure", + "required":["teamId"], + "members":{ + "teamId":{"shape":"teamId"} + } + }, + "RegisterSlackWorkspaceForOrganizationResult":{ + "type":"structure", + "members":{ + "accountType":{"shape":"AccountType"}, + "teamId":{"shape":"teamId"}, + "teamName":{"shape":"teamName"} + } + }, "ResourceNotFoundException":{ "type":"structure", "members":{ @@ -348,7 +387,9 @@ "type":"structure", "required":["teamId"], "members":{ - "teamId":{"shape":"teamId"} + "allowOrganizationMemberAccount":{"shape":"booleanValue"}, + "teamId":{"shape":"teamId"}, + "teamName":{"shape":"teamName"} } }, "SlackWorkspaceConfigurationList":{ @@ -440,6 +481,12 @@ "max":256, "min":1, "pattern":"^\\S+$" + }, + "teamName":{ + "type":"string", + "max":256, + "min":1, + "pattern":"^.+$" } } } diff --git a/models/apis/support-app/2021-08-20/docs-2.json b/models/apis/support-app/2021-08-20/docs-2.json index 4d689e7e1a..17ab4982b4 100644 --- a/models/apis/support-app/2021-08-20/docs-2.json +++ b/models/apis/support-app/2021-08-20/docs-2.json @@ -1,6 +1,6 @@ { "version": "2.0", - "service": "

Amazon Web Services Support App in Slack

You can use the Amazon Web Services Support App in Slack API to manage your support cases in Slack for your Amazon Web Services account. After you configure your Slack workspace and channel with the Amazon Web Services Support App, you can perform the following tasks directly in your Slack channel:

  • Create, search, update, and resolve your support cases

  • Request service quota increases for your account

  • Invite Amazon Web Services Support agents to your channel so that you can chat directly about your support cases

For more information about how to perform these actions in Slack, see the following documentation in the Amazon Web Services Support User Guide:

You can also use the Amazon Web Services Management Console instead of the Amazon Web Services Support App API to manage your Slack configurations. For more information, see Authorize a Slack workspace to enable the Amazon Web Services Support App.

 <note> <ul> <li> <p>You must have a Business or Enterprise Support plan to use the Amazon Web Services Support App API. </p> </li> <li> <p>For more information about the Amazon Web Services Support App endpoints, see the <a href="https://docs.aws.amazon.com/general/latest/gr/awssupport.html#awssupport_app_region">Amazon Web Services Support App in Slack endpoints</a> in the <i>Amazon Web Services General Reference</i>.</p> </li> </ul> </note> 
", + "service": "

Amazon Web Services Support App in Slack

You can use the Amazon Web Services Support App in Slack API to manage your support cases in Slack for your Amazon Web Services account. After you configure your Slack workspace and channel with the Amazon Web Services Support App, you can perform the following tasks directly in your Slack channel:

  • Create, search, update, and resolve your support cases

  • Request service quota increases for your account

  • Invite Amazon Web Services Support agents to your channel so that you can chat directly about your support cases

For more information about how to perform these actions in Slack, see the following documentation in the Amazon Web Services Support User Guide:

You can also use the Amazon Web Services Management Console instead of the Amazon Web Services Support App API to manage your Slack configurations. For more information, see Authorize a Slack workspace to enable the Amazon Web Services Support App.

  • You must have a Business or Enterprise Support plan to use the Amazon Web Services Support App API.

  • For more information about the Amazon Web Services Support App endpoints, see the Amazon Web Services Support App in Slack endpoints in the Amazon Web Services General Reference.

", "operations": { "CreateSlackChannelConfiguration": "

Creates a Slack channel configuration for your Amazon Web Services account.

  • You can add up to 5 Slack workspaces for your account.

  • You can add up to 20 Slack channels for your account.

A Slack channel can have up to 100 Amazon Web Services accounts. This means that only 100 accounts can add the same Slack channel to the Amazon Web Services Support App. We recommend that you only add the accounts that you need to manage support cases for your organization. This can reduce the notifications about case updates that you receive in the Slack channel.

We recommend that you choose a private Slack channel so that only members in that channel have read and write access to your support cases. Anyone in your Slack channel can create, update, or resolve support cases for your account. Users require an invitation to join private channels.

", "DeleteAccountAlias": "

Deletes an alias for an Amazon Web Services account ID. The alias appears in the Amazon Web Services Support App page of the Amazon Web Services Support Center. The alias also appears in Slack messages from the Amazon Web Services Support App.

", @@ -10,6 +10,7 @@ "ListSlackChannelConfigurations": "

Lists the Slack channel configurations for an Amazon Web Services account.

", "ListSlackWorkspaceConfigurations": "

Lists the Slack workspace configurations for an Amazon Web Services account.

", "PutAccountAlias": "

Creates or updates an individual alias for each Amazon Web Services account ID. The alias appears in the Amazon Web Services Support App page of the Amazon Web Services Support Center. The alias also appears in Slack messages from the Amazon Web Services Support App.

", + "RegisterSlackWorkspaceForOrganization": "

Registers a Slack workspace for your Amazon Web Services account. To call this API, your account must be part of an organization in Organizations.

If you're the management account and you want to register Slack workspaces for your organization, you must complete the following tasks:

  1. Sign in to the Amazon Web Services Support Center and authorize the Slack workspaces where you want your organization to have access to. See Authorize a Slack workspace in the Amazon Web Services Support User Guide.

  2. Call the RegisterSlackWorkspaceForOrganization API to authorize each Slack workspace for the organization.

After the management account authorizes the Slack workspace, member accounts can call this API to authorize the same Slack workspace for their individual accounts. Member accounts don't need to authorize the Slack workspace manually through the Amazon Web Services Support Center.

To use the Amazon Web Services Support App, each account must then complete the following tasks:

", "UpdateSlackChannelConfiguration": "

Updates the configuration for a Slack channel, such as case update notifications.

" }, "shapes": { @@ -18,8 +19,14 @@ "refs": { } }, + "AccountType": { + "base": null, + "refs": { + "RegisterSlackWorkspaceForOrganizationResult$accountType": "

Whether the Amazon Web Services account is a management or member account that's part of an organization in Organizations.

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

Your request has a conflict. For example, you might receive this error if you try the following:

  • Add, update, or delete a Slack channel configuration before you add a Slack workspace to your Amazon Web Services account.

  • Add a Slack channel configuration that already exists in your Amazon Web Services account.

  • Delete a Slack channel configuration for a live chat channel.

  • Delete a Slack workspace from your Amazon Web Services account that has an active live chat channel.

", + "base": "

Your request has a conflict. For example, you might receive this error if you try the following:

  • Add, update, or delete a Slack channel configuration before you add a Slack workspace to your Amazon Web Services account.

  • Add a Slack channel configuration that already exists in your Amazon Web Services account.

  • Delete a Slack channel configuration for a live chat channel.

  • Delete a Slack workspace from your Amazon Web Services account that has an active live chat channel.

  • Call the RegisterSlackWorkspaceForOrganization API from an Amazon Web Services account that doesn't belong to an organization.

  • Call the RegisterSlackWorkspaceForOrganization API from a member account, but the management account hasn't registered that workspace yet for the organization.

", "refs": { } }, @@ -101,9 +108,9 @@ "NotificationSeverityLevel": { "base": null, "refs": { - "CreateSlackChannelConfigurationRequest$notifyOnCaseSeverity": "

The case severity for a support case that you want to receive notifications.

 <p>If you specify <code>high</code> or <code>all</code>, you must specify <code>true</code> for at least one of the following parameters:</p> <ul> <li> <p> <code>notifyOnAddCorrespondenceToCase</code> </p> </li> <li> <p> <code>notifyOnCreateOrReopenCase</code> </p> </li> <li> <p> <code>notifyOnResolveCase</code> </p> </li> </ul> <p>If you specify <code>none</code>, the following parameters must be null or <code>false</code>:</p> <ul> <li> <p> <code>notifyOnAddCorrespondenceToCase</code> </p> </li> <li> <p> <code>notifyOnCreateOrReopenCase</code> </p> </li> <li> <p> <code>notifyOnResolveCase</code> </p> </li> </ul> <note> <p>If you don't specify these parameters in your request, they default to <code>false</code>.</p> </note> 
", + "CreateSlackChannelConfigurationRequest$notifyOnCaseSeverity": "

The case severity for a support case that you want to receive notifications.

If you specify high or all, you must specify true for at least one of the following parameters:

  • notifyOnAddCorrespondenceToCase

  • notifyOnCreateOrReopenCase

  • notifyOnResolveCase

If you specify none, the following parameters must be null or false:

  • notifyOnAddCorrespondenceToCase

  • notifyOnCreateOrReopenCase

  • notifyOnResolveCase

If you don't specify these parameters in your request, they default to false.

", "SlackChannelConfiguration$notifyOnCaseSeverity": "

The case severity for a support case that you want to receive notifications.

", - "UpdateSlackChannelConfigurationRequest$notifyOnCaseSeverity": "

The case severity for a support case that you want to receive notifications.

 <p>If you specify <code>high</code> or <code>all</code>, at least one of the following parameters must be <code>true</code>:</p> <ul> <li> <p> <code>notifyOnAddCorrespondenceToCase</code> </p> </li> <li> <p> <code>notifyOnCreateOrReopenCase</code> </p> </li> <li> <p> <code>notifyOnResolveCase</code> </p> </li> </ul> <p>If you specify <code>none</code>, any of the following parameters that you specify in your request must be <code>false</code>:</p> <ul> <li> <p> <code>notifyOnAddCorrespondenceToCase</code> </p> </li> <li> <p> <code>notifyOnCreateOrReopenCase</code> </p> </li> <li> <p> <code>notifyOnResolveCase</code> </p> </li> </ul> <note> <p>If you don't specify these parameters in your request, the Amazon Web Services Support App uses the current values by default.</p> </note> 
", + "UpdateSlackChannelConfigurationRequest$notifyOnCaseSeverity": "

The case severity for a support case that you want to receive notifications.

If you specify high or all, at least one of the following parameters must be true:

  • notifyOnAddCorrespondenceToCase

  • notifyOnCreateOrReopenCase

  • notifyOnResolveCase

If you specify none, any of the following parameters that you specify in your request must be false:

  • notifyOnAddCorrespondenceToCase

  • notifyOnCreateOrReopenCase

  • notifyOnResolveCase

If you don't specify these parameters in your request, the Amazon Web Services Support App uses the current values by default.

", "UpdateSlackChannelConfigurationResult$notifyOnCaseSeverity": "

The case severity for a support case that you want to receive notifications.

" } }, @@ -117,8 +124,18 @@ "refs": { } }, + "RegisterSlackWorkspaceForOrganizationRequest": { + "base": null, + "refs": { + } + }, + "RegisterSlackWorkspaceForOrganizationResult": { + "base": null, + "refs": { + } + }, "ResourceNotFoundException": { - "base": "

The specified resource is missing or doesn't exist, such as an account alias or Slack channel configuration.

", + "base": "

The specified resource is missing or doesn't exist, such as an account alias, Slack channel configuration, or Slack workspace configuration.

", "refs": { } }, @@ -128,7 +145,7 @@ } }, "SlackChannelConfiguration": { - "base": "

The configuration for a Slack channel that you added to an Amazon Web Services account.

", + "base": "

The configuration for a Slack channel that you added for your Amazon Web Services account.

", "refs": { "slackChannelConfigurationList$member": null } @@ -176,6 +193,7 @@ "SlackChannelConfiguration$notifyOnAddCorrespondenceToCase": "

Whether you want to get notified when a support case has a new correspondence.

", "SlackChannelConfiguration$notifyOnCreateOrReopenCase": "

Whether you want to get notified when a support case is created or reopened.

", "SlackChannelConfiguration$notifyOnResolveCase": "

Whether you want to get notified when a support case is resolved.

", + "SlackWorkspaceConfiguration$allowOrganizationMemberAccount": "

Whether to allow member accounts to authorize Slack workspaces. Member accounts must be part of an organization in Organizations.

", "UpdateSlackChannelConfigurationRequest$notifyOnAddCorrespondenceToCase": "

Whether you want to get notified when a support case has a new correspondence.

", "UpdateSlackChannelConfigurationRequest$notifyOnCreateOrReopenCase": "

Whether you want to get notified when a support case is created or reopened.

", "UpdateSlackChannelConfigurationRequest$notifyOnResolveCase": "

Whether you want to get notified when a support case is resolved.

", @@ -198,7 +216,7 @@ "base": null, "refs": { "CreateSlackChannelConfigurationRequest$channelName": "

The name of the Slack channel that you configure for the Amazon Web Services Support App.

", - "SlackChannelConfiguration$channelName": "

The name of the Slack channel that you configured with the Amazon Web Services Support App.

", + "SlackChannelConfiguration$channelName": "

The name of the Slack channel that you configured with the Amazon Web Services Support App for your Amazon Web Services account.

", "UpdateSlackChannelConfigurationRequest$channelName": "

The Slack channel name that you want to update.

", "UpdateSlackChannelConfigurationResult$channelName": "

The name of the Slack channel that you configure for the Amazon Web Services Support App.

" } @@ -241,13 +259,22 @@ "teamId": { "base": null, "refs": { - "CreateSlackChannelConfigurationRequest$teamId": "

The team ID in Slack. This ID uniquely identifies a Slack workspace.

", - "DeleteSlackChannelConfigurationRequest$teamId": "

The team ID in Slack. This ID uniquely identifies a Slack workspace.

", - "DeleteSlackWorkspaceConfigurationRequest$teamId": "

The team ID in Slack. This ID uniquely identifies a Slack workspace.

", - "SlackChannelConfiguration$teamId": "

The team ID in Slack. This ID uniquely identifies a Slack workspace.

", - "SlackWorkspaceConfiguration$teamId": "

The team ID in Slack. This ID uniquely identifies a Slack workspace.

", - "UpdateSlackChannelConfigurationRequest$teamId": "

The team ID in Slack. This ID uniquely identifies a Slack workspace.

", - "UpdateSlackChannelConfigurationResult$teamId": "

The team ID in Slack. This ID uniquely identifies a Slack workspace.

" + "CreateSlackChannelConfigurationRequest$teamId": "

The team ID in Slack. This ID uniquely identifies a Slack workspace, such as T012ABCDEFG.

", + "DeleteSlackChannelConfigurationRequest$teamId": "

The team ID in Slack. This ID uniquely identifies a Slack workspace, such as T012ABCDEFG.

", + "DeleteSlackWorkspaceConfigurationRequest$teamId": "

The team ID in Slack. This ID uniquely identifies a Slack workspace, such as T012ABCDEFG.

", + "RegisterSlackWorkspaceForOrganizationRequest$teamId": "

The team ID in Slack. This ID uniquely identifies a Slack workspace, such as T012ABCDEFG. Specify the Slack workspace that you want to use for your organization.

", + "RegisterSlackWorkspaceForOrganizationResult$teamId": "

The team ID in Slack. This ID uniquely identifies a Slack workspace, such as T012ABCDEFG.

", + "SlackChannelConfiguration$teamId": "

The team ID in Slack. This ID uniquely identifies a Slack workspace, such as T012ABCDEFG.

", + "SlackWorkspaceConfiguration$teamId": "

The team ID in Slack. This ID uniquely identifies a Slack workspace, such as T012ABCDEFG.

", + "UpdateSlackChannelConfigurationRequest$teamId": "

The team ID in Slack. This ID uniquely identifies a Slack workspace, such as T012ABCDEFG.

", + "UpdateSlackChannelConfigurationResult$teamId": "

The team ID in Slack. This ID uniquely identifies a Slack workspace, such as T012ABCDEFG.

" + } + }, + "teamName": { + "base": null, + "refs": { + "RegisterSlackWorkspaceForOrganizationResult$teamName": "

The name of the Slack workspace.

", + "SlackWorkspaceConfiguration$teamName": "

The name of the Slack workspace.

" } } } diff --git a/models/apis/support-app/2021-08-20/endpoint-rule-set-1.json b/models/apis/support-app/2021-08-20/endpoint-rule-set-1.json new file mode 100644 index 0000000000..d299a2c006 --- /dev/null +++ b/models/apis/support-app/2021-08-20/endpoint-rule-set-1.json @@ -0,0 +1,309 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://support-app-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://support-app-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://support-app.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://support-app.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/models/apis/support-app/2021-08-20/endpoint-tests-1.json b/models/apis/support-app/2021-08-20/endpoint-tests-1.json new file mode 100644 index 0000000000..ff1bae97f5 --- /dev/null +++ b/models/apis/support-app/2021-08-20/endpoint-tests-1.json @@ -0,0 +1,43 @@ +{ + "testCases": [ + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/workspaces-web/2020-07-08/api-2.json b/models/apis/workspaces-web/2020-07-08/api-2.json index 90401d5465..e0048ec58c 100644 --- a/models/apis/workspaces-web/2020-07-08/api-2.json +++ b/models/apis/workspaces-web/2020-07-08/api-2.json @@ -68,6 +68,25 @@ ], "idempotent":true }, + "AssociateUserAccessLoggingSettings":{ + "name":"AssociateUserAccessLoggingSettings", + "http":{ + "method":"PUT", + "requestUri":"/portals/{portalArn+}/userAccessLoggingSettings", + "responseCode":200 + }, + "input":{"shape":"AssociateUserAccessLoggingSettingsRequest"}, + "output":{"shape":"AssociateUserAccessLoggingSettingsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"} + ], + "idempotent":true + }, "AssociateUserSettings":{ "name":"AssociateUserSettings", "http":{ @@ -180,6 +199,24 @@ {"shape":"ConflictException"} ] }, + "CreateUserAccessLoggingSettings":{ + "name":"CreateUserAccessLoggingSettings", + "http":{ + "method":"POST", + "requestUri":"/userAccessLoggingSettings", + "responseCode":200 + }, + "input":{"shape":"CreateUserAccessLoggingSettingsRequest"}, + "output":{"shape":"CreateUserAccessLoggingSettingsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ServiceQuotaExceededException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"} + ] + }, "CreateUserSettings":{ "name":"CreateUserSettings", "http":{ @@ -288,6 +325,24 @@ ], "idempotent":true }, + "DeleteUserAccessLoggingSettings":{ + "name":"DeleteUserAccessLoggingSettings", + "http":{ + "method":"DELETE", + "requestUri":"/userAccessLoggingSettings/{userAccessLoggingSettingsArn+}", + "responseCode":200 + }, + "input":{"shape":"DeleteUserAccessLoggingSettingsRequest"}, + "output":{"shape":"DeleteUserAccessLoggingSettingsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"} + ], + "idempotent":true + }, "DeleteUserSettings":{ "name":"DeleteUserSettings", "http":{ @@ -360,6 +415,24 @@ ], "idempotent":true }, + "DisassociateUserAccessLoggingSettings":{ + "name":"DisassociateUserAccessLoggingSettings", + "http":{ + "method":"DELETE", + "requestUri":"/portals/{portalArn+}/userAccessLoggingSettings", + "responseCode":200 + }, + "input":{"shape":"DisassociateUserAccessLoggingSettingsRequest"}, + "output":{"shape":"DisassociateUserAccessLoggingSettingsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ], + "idempotent":true + }, "DisassociateUserSettings":{ "name":"DisassociateUserSettings", "http":{ @@ -497,6 +570,23 @@ {"shape":"ValidationException"} ] }, + "GetUserAccessLoggingSettings":{ + "name":"GetUserAccessLoggingSettings", + "http":{ + "method":"GET", + "requestUri":"/userAccessLoggingSettings/{userAccessLoggingSettingsArn+}", + "responseCode":200 + }, + "input":{"shape":"GetUserAccessLoggingSettingsRequest"}, + "output":{"shape":"GetUserAccessLoggingSettingsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ] + }, "GetUserSettings":{ "name":"GetUserSettings", "http":{ @@ -628,6 +718,22 @@ {"shape":"ValidationException"} ] }, + "ListUserAccessLoggingSettings":{ + "name":"ListUserAccessLoggingSettings", + "http":{ + "method":"GET", + "requestUri":"/userAccessLoggingSettings", + "responseCode":200 + }, + "input":{"shape":"ListUserAccessLoggingSettingsRequest"}, + "output":{"shape":"ListUserAccessLoggingSettingsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ] + }, "ListUserSettings":{ "name":"ListUserSettings", "http":{ @@ -767,6 +873,23 @@ {"shape":"ValidationException"} ] }, + "UpdateUserAccessLoggingSettings":{ + "name":"UpdateUserAccessLoggingSettings", + "http":{ + "method":"PATCH", + "requestUri":"/userAccessLoggingSettings/{userAccessLoggingSettingsArn+}", + "responseCode":200 + }, + "input":{"shape":"UpdateUserAccessLoggingSettingsRequest"}, + "output":{"shape":"UpdateUserAccessLoggingSettingsResponse"}, + "errors":[ + {"shape":"InternalServerException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"AccessDeniedException"}, + {"shape":"ThrottlingException"}, + {"shape":"ValidationException"} + ] + }, "UpdateUserSettings":{ "name":"UpdateUserSettings", "http":{ @@ -897,6 +1020,36 @@ "trustStoreArn":{"shape":"ARN"} } }, + "AssociateUserAccessLoggingSettingsRequest":{ + "type":"structure", + "required":[ + "portalArn", + "userAccessLoggingSettingsArn" + ], + "members":{ + "portalArn":{ + "shape":"ARN", + "location":"uri", + "locationName":"portalArn" + }, + "userAccessLoggingSettingsArn":{ + "shape":"ARN", + "location":"querystring", + "locationName":"userAccessLoggingSettingsArn" + } + } + }, + "AssociateUserAccessLoggingSettingsResponse":{ + "type":"structure", + "required":[ + "portalArn", + "userAccessLoggingSettingsArn" + ], + "members":{ + "portalArn":{"shape":"ARN"}, + "userAccessLoggingSettingsArn":{"shape":"ARN"} + } + }, "AssociateUserSettingsRequest":{ "type":"structure", "required":[ @@ -1136,6 +1289,25 @@ "trustStoreArn":{"shape":"ARN"} } }, + "CreateUserAccessLoggingSettingsRequest":{ + "type":"structure", + "required":["kinesisStreamArn"], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + }, + "kinesisStreamArn":{"shape":"KinesisStreamArn"}, + "tags":{"shape":"TagList"} + } + }, + "CreateUserAccessLoggingSettingsResponse":{ + "type":"structure", + "required":["userAccessLoggingSettingsArn"], + "members":{ + "userAccessLoggingSettingsArn":{"shape":"ARN"} + } + }, "CreateUserSettingsRequest":{ "type":"structure", "required":[ @@ -1247,6 +1419,22 @@ "members":{ } }, + "DeleteUserAccessLoggingSettingsRequest":{ + "type":"structure", + "required":["userAccessLoggingSettingsArn"], + "members":{ + "userAccessLoggingSettingsArn":{ + "shape":"ARN", + "location":"uri", + "locationName":"userAccessLoggingSettingsArn" + } + } + }, + "DeleteUserAccessLoggingSettingsResponse":{ + "type":"structure", + "members":{ + } + }, "DeleteUserSettingsRequest":{ "type":"structure", "required":["userSettingsArn"], @@ -1311,6 +1499,22 @@ "members":{ } }, + "DisassociateUserAccessLoggingSettingsRequest":{ + "type":"structure", + "required":["portalArn"], + "members":{ + "portalArn":{ + "shape":"ARN", + "location":"uri", + "locationName":"portalArn" + } + } + }, + "DisassociateUserAccessLoggingSettingsResponse":{ + "type":"structure", + "members":{ + } + }, "DisassociateUserSettingsRequest":{ "type":"structure", "required":["portalArn"], @@ -1484,6 +1688,23 @@ "trustStore":{"shape":"TrustStore"} } }, + "GetUserAccessLoggingSettingsRequest":{ + "type":"structure", + "required":["userAccessLoggingSettingsArn"], + "members":{ + "userAccessLoggingSettingsArn":{ + "shape":"ARN", + "location":"uri", + "locationName":"userAccessLoggingSettingsArn" + } + } + }, + "GetUserAccessLoggingSettingsResponse":{ + "type":"structure", + "members":{ + "userAccessLoggingSettings":{"shape":"UserAccessLoggingSettings"} + } + }, "GetUserSettingsRequest":{ "type":"structure", "required":["userSettingsArn"], @@ -1567,6 +1788,12 @@ "exception":true, "fault":true }, + "KinesisStreamArn":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"arn:[\\w+=/,.@-]+:kinesis:[a-zA-Z0-9\\-]*:[a-zA-Z0-9]{1,12}:stream/.+" + }, "ListBrowserSettingsRequest":{ "type":"structure", "members":{ @@ -1729,6 +1956,28 @@ "trustStores":{"shape":"TrustStoreSummaryList"} } }, + "ListUserAccessLoggingSettingsRequest":{ + "type":"structure", + "members":{ + "maxResults":{ + "shape":"MaxResults", + "location":"querystring", + "locationName":"maxResults" + }, + "nextToken":{ + "shape":"PaginationToken", + "location":"querystring", + "locationName":"nextToken" + } + } + }, + "ListUserAccessLoggingSettingsResponse":{ + "type":"structure", + "members":{ + "nextToken":{"shape":"PaginationToken"}, + "userAccessLoggingSettings":{"shape":"UserAccessLoggingSettingsList"} + } + }, "ListUserSettingsRequest":{ "type":"structure", "members":{ @@ -1798,6 +2047,7 @@ "rendererType":{"shape":"RendererType"}, "statusReason":{"shape":"StatusReason"}, "trustStoreArn":{"shape":"ARN"}, + "userAccessLoggingSettingsArn":{"shape":"ARN"}, "userSettingsArn":{"shape":"ARN"} } }, @@ -1832,6 +2082,7 @@ "portalStatus":{"shape":"PortalStatus"}, "rendererType":{"shape":"RendererType"}, "trustStoreArn":{"shape":"ARN"}, + "userAccessLoggingSettingsArn":{"shape":"ARN"}, "userSettingsArn":{"shape":"ARN"} } }, @@ -2164,6 +2415,29 @@ "trustStoreArn":{"shape":"ARN"} } }, + "UpdateUserAccessLoggingSettingsRequest":{ + "type":"structure", + "required":["userAccessLoggingSettingsArn"], + "members":{ + "clientToken":{ + "shape":"ClientToken", + "idempotencyToken":true + }, + "kinesisStreamArn":{"shape":"KinesisStreamArn"}, + "userAccessLoggingSettingsArn":{ + "shape":"ARN", + "location":"uri", + "locationName":"userAccessLoggingSettingsArn" + } + } + }, + "UpdateUserAccessLoggingSettingsResponse":{ + "type":"structure", + "required":["userAccessLoggingSettings"], + "members":{ + "userAccessLoggingSettings":{"shape":"UserAccessLoggingSettings"} + } + }, "UpdateUserSettingsRequest":{ "type":"structure", "required":["userSettingsArn"], @@ -2193,6 +2467,26 @@ "userSettings":{"shape":"UserSettings"} } }, + "UserAccessLoggingSettings":{ + "type":"structure", + "required":["userAccessLoggingSettingsArn"], + "members":{ + "associatedPortalArns":{"shape":"ArnList"}, + "kinesisStreamArn":{"shape":"KinesisStreamArn"}, + "userAccessLoggingSettingsArn":{"shape":"ARN"} + } + }, + "UserAccessLoggingSettingsList":{ + "type":"list", + "member":{"shape":"UserAccessLoggingSettingsSummary"} + }, + "UserAccessLoggingSettingsSummary":{ + "type":"structure", + "members":{ + "kinesisStreamArn":{"shape":"KinesisStreamArn"}, + "userAccessLoggingSettingsArn":{"shape":"ARN"} + } + }, "UserSettings":{ "type":"structure", "required":["userSettingsArn"], diff --git a/models/apis/workspaces-web/2020-07-08/docs-2.json b/models/apis/workspaces-web/2020-07-08/docs-2.json index fe8e26a941..7b7012c5d0 100644 --- a/models/apis/workspaces-web/2020-07-08/docs-2.json +++ b/models/apis/workspaces-web/2020-07-08/docs-2.json @@ -5,22 +5,26 @@ "AssociateBrowserSettings": "

Associates a browser settings resource with a web portal.

", "AssociateNetworkSettings": "

Associates a network settings resource with a web portal.

", "AssociateTrustStore": "

Associates a trust store with a web portal.

", + "AssociateUserAccessLoggingSettings": "

Associates a user access logging settings resource with a web portal.

", "AssociateUserSettings": "

Associates a user settings resource with a web portal.

", "CreateBrowserSettings": "

Creates a browser settings resource that can be associated with a web portal. Once associated with a web portal, browser settings control how the browser will behave once a user starts a streaming session for the web portal.

", "CreateIdentityProvider": "

Creates an identity provider resource that is then associated with a web portal.

", "CreateNetworkSettings": "

Creates a network settings resource that can be associated with a web portal. Once associated with a web portal, network settings define how streaming instances will connect with your specified VPC.

", "CreatePortal": "

Creates a web portal.

", "CreateTrustStore": "

Creates a trust store that can be associated with a web portal. A trust store contains certificate authority (CA) certificates. Once associated with a web portal, the browser in a streaming session will recognize certificates that have been issued using any of the CAs in the trust store. If your organization has internal websites that use certificates issued by private CAs, you should add the private CA certificate to the trust store.

", + "CreateUserAccessLoggingSettings": "

Creates a user access logging settings resource that can be associated with a web portal.

", "CreateUserSettings": "

Creates a user settings resource that can be associated with a web portal. Once associated with a web portal, user settings control how users can transfer data between a streaming session and the their local devices.

", "DeleteBrowserSettings": "

Deletes browser settings.

", "DeleteIdentityProvider": "

Deletes the identity provider.

", "DeleteNetworkSettings": "

Deletes network settings.

", "DeletePortal": "

Deletes a web portal.

", "DeleteTrustStore": "

Deletes the trust store.

", + "DeleteUserAccessLoggingSettings": "

Deletes user access logging settings.

", "DeleteUserSettings": "

Deletes user settings.

", "DisassociateBrowserSettings": "

Disassociates browser settings from a web portal.

", "DisassociateNetworkSettings": "

Disassociates network settings from a web portal.

", "DisassociateTrustStore": "

Disassociates a trust store from a web portal.

", + "DisassociateUserAccessLoggingSettings": "

Disassociates user access logging settings from a web portal.

", "DisassociateUserSettings": "

Disassociates user settings from a web portal.

", "GetBrowserSettings": "

Gets browser settings.

", "GetIdentityProvider": "

Gets the identity provider.

", @@ -29,6 +33,7 @@ "GetPortalServiceProviderMetadata": "

Gets the service provider metadata.

", "GetTrustStore": "

Gets the trust store.

", "GetTrustStoreCertificate": "

Gets the trust store certificate.

", + "GetUserAccessLoggingSettings": "

Gets user access logging settings.

", "GetUserSettings": "

Gets user settings.

", "ListBrowserSettings": "

Retrieves a list of browser settings.

", "ListIdentityProviders": "

Retrieves a list of identity providers for a specific web portal.

", @@ -37,6 +42,7 @@ "ListTagsForResource": "

Retrieves a list of tags for a resource.

", "ListTrustStoreCertificates": "

Retrieves a list of trust store certificates.

", "ListTrustStores": "

Retrieves a list of trust stores.

", + "ListUserAccessLoggingSettings": "

Retrieves a list of user access logging settings.

", "ListUserSettings": "

Retrieves a list of user settings.

", "TagResource": "

Adds or overwrites one or more tags for the specified resource.

", "UntagResource": "

Removes one or more tags from the specified resource.

", @@ -45,6 +51,7 @@ "UpdateNetworkSettings": "

Updates network settings.

", "UpdatePortal": "

Updates a web portal.

", "UpdateTrustStore": "

Updates the trust store.

", + "UpdateUserAccessLoggingSettings": "

Updates the user access logging settings.

", "UpdateUserSettings": "

Updates the user settings.

" }, "shapes": { @@ -64,6 +71,10 @@ "AssociateTrustStoreRequest$trustStoreArn": "

The ARN of the trust store.

", "AssociateTrustStoreResponse$portalArn": "

The ARN of the web portal.

", "AssociateTrustStoreResponse$trustStoreArn": "

The ARN of the trust store.

", + "AssociateUserAccessLoggingSettingsRequest$portalArn": "

The ARN of the web portal.

", + "AssociateUserAccessLoggingSettingsRequest$userAccessLoggingSettingsArn": "

The ARN of the user access logging settings.

", + "AssociateUserAccessLoggingSettingsResponse$portalArn": "

The ARN of the web portal.

", + "AssociateUserAccessLoggingSettingsResponse$userAccessLoggingSettingsArn": "

The ARN of the user access logging settings.

", "AssociateUserSettingsRequest$portalArn": "

The ARN of the web portal.

", "AssociateUserSettingsRequest$userSettingsArn": "

The ARN of the user settings.

", "AssociateUserSettingsResponse$portalArn": "

The ARN of the web portal.

", @@ -76,16 +87,19 @@ "CreateNetworkSettingsResponse$networkSettingsArn": "

The ARN of the network settings.

", "CreatePortalResponse$portalArn": "

The ARN of the web portal.

", "CreateTrustStoreResponse$trustStoreArn": "

The ARN of the trust store.

", + "CreateUserAccessLoggingSettingsResponse$userAccessLoggingSettingsArn": "

The ARN of the user access logging settings.

", "CreateUserSettingsResponse$userSettingsArn": "

The ARN of the user settings.

", "DeleteBrowserSettingsRequest$browserSettingsArn": "

The ARN of the browser settings.

", "DeleteIdentityProviderRequest$identityProviderArn": "

The ARN of the identity provider.

", "DeleteNetworkSettingsRequest$networkSettingsArn": "

The ARN of the network settings.

", "DeletePortalRequest$portalArn": "

The ARN of the web portal.

", "DeleteTrustStoreRequest$trustStoreArn": "

The ARN of the trust store.

", + "DeleteUserAccessLoggingSettingsRequest$userAccessLoggingSettingsArn": "

The ARN of the user access logging settings.

", "DeleteUserSettingsRequest$userSettingsArn": "

The ARN of the user settings.

", "DisassociateBrowserSettingsRequest$portalArn": "

The ARN of the web portal.

", "DisassociateNetworkSettingsRequest$portalArn": "

The ARN of the web portal.

", "DisassociateTrustStoreRequest$portalArn": "

The ARN of the web portal.

", + "DisassociateUserAccessLoggingSettingsRequest$portalArn": "

The ARN of the web portal.

", "DisassociateUserSettingsRequest$portalArn": "

The ARN of the web portal.

", "GetBrowserSettingsRequest$browserSettingsArn": "

The ARN of the browser settings.

", "GetIdentityProviderRequest$identityProviderArn": "

The ARN of the identity provider.

", @@ -96,6 +110,7 @@ "GetTrustStoreCertificateRequest$trustStoreArn": "

The ARN of the trust store certificate.

", "GetTrustStoreCertificateResponse$trustStoreArn": "

The ARN of the trust store certificate.

", "GetTrustStoreRequest$trustStoreArn": "

The ARN of the trust store.

", + "GetUserAccessLoggingSettingsRequest$userAccessLoggingSettingsArn": "

The ARN of the user access logging settings.

", "GetUserSettingsRequest$userSettingsArn": "

The ARN of the user settings.

", "IdentityProvider$identityProviderArn": "

The ARN of the identity provider.

", "IdentityProviderSummary$identityProviderArn": "

The ARN of the identity provider.

", @@ -109,11 +124,13 @@ "Portal$networkSettingsArn": "

The ARN of the network settings that is associated with the web portal.

", "Portal$portalArn": "

The ARN of the web portal.

", "Portal$trustStoreArn": "

The ARN of the trust store that is associated with the web portal.

", - "Portal$userSettingsArn": "

The ARN of the trust store that is associated with the web portal.

", + "Portal$userAccessLoggingSettingsArn": "

The ARN of the user access logging settings that is associated with the web portal.

", + "Portal$userSettingsArn": "

The ARN of the user settings that is associated with the web portal.

", "PortalSummary$browserSettingsArn": "

The ARN of the browser settings that is associated with the web portal.

", "PortalSummary$networkSettingsArn": "

The ARN of the network settings that is associated with the web portal.

", "PortalSummary$portalArn": "

The ARN of the web portal.

", "PortalSummary$trustStoreArn": "

The ARN of the trust that is associated with this web portal.

", + "PortalSummary$userAccessLoggingSettingsArn": "

The ARN of the user access logging settings that is associated with the web portal.

", "PortalSummary$userSettingsArn": "

The ARN of the user settings that is associated with the web portal.

", "TagResourceRequest$resourceArn": "

The ARN of the resource.

", "TooManyTagsException$resourceName": "

Name of the resource affected.

", @@ -126,7 +143,10 @@ "UpdatePortalRequest$portalArn": "

The ARN of the web portal.

", "UpdateTrustStoreRequest$trustStoreArn": "

The ARN of the trust store.

", "UpdateTrustStoreResponse$trustStoreArn": "

The ARN of the trust store.

", + "UpdateUserAccessLoggingSettingsRequest$userAccessLoggingSettingsArn": "

The ARN of the user access logging settings.

", "UpdateUserSettingsRequest$userSettingsArn": "

The ARN of the user settings.

", + "UserAccessLoggingSettings$userAccessLoggingSettingsArn": "

The ARN of the user access logging settings.

", + "UserAccessLoggingSettingsSummary$userAccessLoggingSettingsArn": "

The ARN of the user access logging settings.

", "UserSettings$userSettingsArn": "

The ARN of the user settings.

", "UserSettingsSummary$userSettingsArn": "

The ARN of the user settings.

" } @@ -142,6 +162,7 @@ "BrowserSettings$associatedPortalArns": "

A list of web portal ARNs that this browser settings is associated with.

", "NetworkSettings$associatedPortalArns": "

A list of web portal ARNs that this network settings is associated with.

", "TrustStore$associatedPortalArns": "

A list of web portal ARNs that this trust store is associated with.

", + "UserAccessLoggingSettings$associatedPortalArns": "

A list of web portal ARNs that this user access logging settings is associated with.

", "UserSettings$associatedPortalArns": "

A list of web portal ARNs that this user settings is associated with.

" } }, @@ -175,6 +196,16 @@ "refs": { } }, + "AssociateUserAccessLoggingSettingsRequest": { + "base": null, + "refs": { + } + }, + "AssociateUserAccessLoggingSettingsResponse": { + "base": null, + "refs": { + } + }, "AssociateUserSettingsRequest": { "base": null, "refs": { @@ -283,12 +314,14 @@ "CreateNetworkSettingsRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.

If you do not specify a client token, one is automatically generated by the AWS SDK.

", "CreatePortalRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.

If you do not specify a client token, one is automatically generated by the AWS SDK.

", "CreateTrustStoreRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.

If you do not specify a client token, one is automatically generated by the AWS SDK.

", + "CreateUserAccessLoggingSettingsRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.

If you do not specify a client token, one is automatically generated by the AWS SDK.

", "CreateUserSettingsRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.

If you do not specify a client token, one is automatically generated by the AWS SDK.

", "TagResourceRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token returns the result from the original successful request.

If you do not specify a client token, one is automatically generated by the AWS SDK.

", "UpdateBrowserSettingsRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request.

If you do not specify a client token, one is automatically generated by the AWS SDK.

", "UpdateIdentityProviderRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request.

If you do not specify a client token, one is automatically generated by the AWS SDK.

", "UpdateNetworkSettingsRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request.

If you do not specify a client token, one is automatically generated by the AWS SDK.

", "UpdateTrustStoreRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request.

If you do not specify a client token, one is automatically generated by the AWS SDK.

", + "UpdateUserAccessLoggingSettingsRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request.

If you do not specify a client token, one is automatically generated by the AWS SDK.

", "UpdateUserSettingsRequest$clientToken": "

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Idempotency ensures that an API request completes only once. With an idempotent request, if the original request completes successfully, subsequent retries with the same client token return the result from the original successful request.

If you do not specify a client token, one is automatically generated by the AWS SDK.

" } }, @@ -347,6 +380,16 @@ "refs": { } }, + "CreateUserAccessLoggingSettingsRequest": { + "base": null, + "refs": { + } + }, + "CreateUserAccessLoggingSettingsResponse": { + "base": null, + "refs": { + } + }, "CreateUserSettingsRequest": { "base": null, "refs": { @@ -407,6 +450,16 @@ "refs": { } }, + "DeleteUserAccessLoggingSettingsRequest": { + "base": null, + "refs": { + } + }, + "DeleteUserAccessLoggingSettingsResponse": { + "base": null, + "refs": { + } + }, "DeleteUserSettingsRequest": { "base": null, "refs": { @@ -447,6 +500,16 @@ "refs": { } }, + "DisassociateUserAccessLoggingSettingsRequest": { + "base": null, + "refs": { + } + }, + "DisassociateUserAccessLoggingSettingsResponse": { + "base": null, + "refs": { + } + }, "DisassociateUserSettingsRequest": { "base": null, "refs": { @@ -596,6 +659,16 @@ "refs": { } }, + "GetUserAccessLoggingSettingsRequest": { + "base": null, + "refs": { + } + }, + "GetUserAccessLoggingSettingsResponse": { + "base": null, + "refs": { + } + }, "GetUserSettingsRequest": { "base": null, "refs": { @@ -665,6 +738,15 @@ "refs": { } }, + "KinesisStreamArn": { + "base": "

Kinesis stream ARN to which log events are published.

", + "refs": { + "CreateUserAccessLoggingSettingsRequest$kinesisStreamArn": "

The ARN of the Kinesis stream.

", + "UpdateUserAccessLoggingSettingsRequest$kinesisStreamArn": "

The ARN of the Kinesis stream.

", + "UserAccessLoggingSettings$kinesisStreamArn": "

The ARN of the Kinesis stream.

", + "UserAccessLoggingSettingsSummary$kinesisStreamArn": "

The ARN of the Kinesis stream.

" + } + }, "ListBrowserSettingsRequest": { "base": null, "refs": { @@ -735,6 +817,16 @@ "refs": { } }, + "ListUserAccessLoggingSettingsRequest": { + "base": null, + "refs": { + } + }, + "ListUserAccessLoggingSettingsResponse": { + "base": null, + "refs": { + } + }, "ListUserSettingsRequest": { "base": null, "refs": { @@ -754,6 +846,7 @@ "ListPortalsRequest$maxResults": "

The maximum number of results to be included in the next page.

", "ListTrustStoreCertificatesRequest$maxResults": "

The maximum number of results to be included in the next page.

", "ListTrustStoresRequest$maxResults": "

The maximum number of results to be included in the next page.

", + "ListUserAccessLoggingSettingsRequest$maxResults": "

The maximum number of results to be included in the next page.

", "ListUserSettingsRequest$maxResults": "

The maximum number of results to be included in the next page.

" } }, @@ -791,6 +884,8 @@ "ListTrustStoreCertificatesResponse$nextToken": "

The pagination token used to retrieve the next page of results for this operation.>

", "ListTrustStoresRequest$nextToken": "

The pagination token used to retrieve the next page of results for this operation.

", "ListTrustStoresResponse$nextToken": "

The pagination token used to retrieve the next page of results for this operation.

", + "ListUserAccessLoggingSettingsRequest$nextToken": "

The pagination token used to retrieve the next page of results for this operation.

", + "ListUserAccessLoggingSettingsResponse$nextToken": "

The pagination token used to retrieve the next page of results for this operation.

", "ListUserSettingsRequest$nextToken": "

The pagination token used to retrieve the next page of results for this operation.

", "ListUserSettingsResponse$nextToken": "

The pagination token used to retrieve the next page of results for this operation.

" } @@ -964,6 +1059,7 @@ "CreateNetworkSettingsRequest$tags": "

The tags to add to the network settings resource. A tag is a key-value pair.

", "CreatePortalRequest$tags": "

The tags to add to the web portal. A tag is a key-value pair.

", "CreateTrustStoreRequest$tags": "

The tags to add to the trust store. A tag is a key-value pair.

", + "CreateUserAccessLoggingSettingsRequest$tags": "

The tags to add to the user settings resource. A tag is a key-value pair.

", "CreateUserSettingsRequest$tags": "

The tags to add to the user settings resource. A tag is a key-value pair.

", "ListTagsForResourceResponse$tags": "

The tags of the resource.

", "TagResourceRequest$tags": "

The tags of the resource.

" @@ -1084,6 +1180,16 @@ "refs": { } }, + "UpdateUserAccessLoggingSettingsRequest": { + "base": null, + "refs": { + } + }, + "UpdateUserAccessLoggingSettingsResponse": { + "base": null, + "refs": { + } + }, "UpdateUserSettingsRequest": { "base": null, "refs": { @@ -1094,6 +1200,25 @@ "refs": { } }, + "UserAccessLoggingSettings": { + "base": "

A user access logging settings resource that can be associated with a web portal.

", + "refs": { + "GetUserAccessLoggingSettingsResponse$userAccessLoggingSettings": "

The user access logging settings.

", + "UpdateUserAccessLoggingSettingsResponse$userAccessLoggingSettings": "

The user access logging settings.

" + } + }, + "UserAccessLoggingSettingsList": { + "base": null, + "refs": { + "ListUserAccessLoggingSettingsResponse$userAccessLoggingSettings": "

The user access logging settings.

" + } + }, + "UserAccessLoggingSettingsSummary": { + "base": "

The summary of user access logging settings.

", + "refs": { + "UserAccessLoggingSettingsList$member": null + } + }, "UserSettings": { "base": "

A user settings resource that can be associated with a web portal. Once associated with a web portal, user settings control how users can transfer data between a streaming session and the their local devices.

", "refs": { diff --git a/models/apis/workspaces-web/2020-07-08/endpoint-rule-set-1.json b/models/apis/workspaces-web/2020-07-08/endpoint-rule-set-1.json new file mode 100644 index 0000000000..0e2c4c6831 --- /dev/null +++ b/models/apis/workspaces-web/2020-07-08/endpoint-rule-set-1.json @@ -0,0 +1,315 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": true, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + }, + { + "fn": "parseURL", + "argv": [ + { + "ref": "Endpoint" + } + ], + "assign": "url" + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://workspaces-web-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://workspaces-web-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ] + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "type": "tree", + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://workspaces-web.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ] + }, + { + "conditions": [], + "endpoint": { + "url": "https://workspaces-web.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ] + } + ] +} \ No newline at end of file diff --git a/models/apis/workspaces-web/2020-07-08/endpoint-tests-1.json b/models/apis/workspaces-web/2020-07-08/endpoint-tests-1.json new file mode 100644 index 0000000000..347344561e --- /dev/null +++ b/models/apis/workspaces-web/2020-07-08/endpoint-tests-1.json @@ -0,0 +1,615 @@ +{ + "testCases": [ + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.ap-south-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-south-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.ap-south-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-south-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.ca-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ca-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.ca-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ca-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.eu-central-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-central-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.eu-central-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-central-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.us-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region us-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.us-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.eu-west-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.eu-west-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-2", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.eu-west-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": true + } + }, + { + "documentation": "For region eu-west-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.eu-west-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "eu-west-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.ap-northeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.ap-northeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.ap-northeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-northeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.ap-northeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-northeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.ap-southeast-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.ap-southeast-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-1", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.ap-southeast-2.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": true + } + }, + { + "documentation": "For region ap-southeast-2 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.ap-southeast-2.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "ap-southeast-2", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.us-east-1.api.aws" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://workspaces-web.us-east-1.amazonaws.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "UseFIPS": true, + "Region": "us-east-1", + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "UseFIPS": false, + "Region": "us-east-1", + "UseDualStack": true, + "Endpoint": "https://example.com" + } + } + ], + "version": "1.0" +} \ No newline at end of file diff --git a/models/apis/workspaces-web/2020-07-08/paginators-1.json b/models/apis/workspaces-web/2020-07-08/paginators-1.json index d705cc33e0..202a631681 100644 --- a/models/apis/workspaces-web/2020-07-08/paginators-1.json +++ b/models/apis/workspaces-web/2020-07-08/paginators-1.json @@ -30,6 +30,11 @@ "output_token": "nextToken", "limit_key": "maxResults" }, + "ListUserAccessLoggingSettings": { + "input_token": "nextToken", + "output_token": "nextToken", + "limit_key": "maxResults" + }, "ListUserSettings": { "input_token": "nextToken", "output_token": "nextToken", diff --git a/models/endpoints/endpoints.json b/models/endpoints/endpoints.json index 8f552aa7a6..4af834826e 100644 --- a/models/endpoints/endpoints.json +++ b/models/endpoints/endpoints.json @@ -5202,6 +5202,13 @@ "deprecated" : true, "hostname" : "elasticfilesystem-fips.eu-west-3.amazonaws.com" }, + "fips-me-central-1" : { + "credentialScope" : { + "region" : "me-central-1" + }, + "deprecated" : true, + "hostname" : "elasticfilesystem-fips.me-central-1.amazonaws.com" + }, "fips-me-south-1" : { "credentialScope" : { "region" : "me-south-1" @@ -5244,6 +5251,12 @@ "deprecated" : true, "hostname" : "elasticfilesystem-fips.us-west-2.amazonaws.com" }, + "me-central-1" : { + "variants" : [ { + "hostname" : "elasticfilesystem-fips.me-central-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "me-south-1" : { "variants" : [ { "hostname" : "elasticfilesystem-fips.me-south-1.amazonaws.com", @@ -6332,7 +6345,12 @@ }, "fsx" : { "endpoints" : { + "af-south-1" : { }, + "ap-east-1" : { }, "ap-northeast-1" : { }, + "ap-northeast-2" : { }, + "ap-northeast-3" : { }, + "ap-south-1" : { }, "ap-southeast-1" : { }, "ap-southeast-2" : { }, "ca-central-1" : { @@ -6342,8 +6360,11 @@ } ] }, "eu-central-1" : { }, + "eu-north-1" : { }, + "eu-south-1" : { }, "eu-west-1" : { }, "eu-west-2" : { }, + "eu-west-3" : { }, "fips-ca-central-1" : { "credentialScope" : { "region" : "ca-central-1" @@ -6372,6 +6393,13 @@ "deprecated" : true, "hostname" : "fsx-fips.us-east-2.amazonaws.com" }, + "fips-prod-us-west-1" : { + "credentialScope" : { + "region" : "us-west-1" + }, + "deprecated" : true, + "hostname" : "fsx-fips.us-west-1.amazonaws.com" + }, "fips-prod-us-west-2" : { "credentialScope" : { "region" : "us-west-2" @@ -6393,6 +6421,13 @@ "deprecated" : true, "hostname" : "fsx-fips.us-east-2.amazonaws.com" }, + "fips-us-west-1" : { + "credentialScope" : { + "region" : "us-west-1" + }, + "deprecated" : true, + "hostname" : "fsx-fips.us-west-1.amazonaws.com" + }, "fips-us-west-2" : { "credentialScope" : { "region" : "us-west-2" @@ -6400,6 +6435,7 @@ "deprecated" : true, "hostname" : "fsx-fips.us-west-2.amazonaws.com" }, + "me-south-1" : { }, "prod-ca-central-1" : { "credentialScope" : { "region" : "ca-central-1" @@ -6430,6 +6466,16 @@ "tags" : [ "fips" ] } ] }, + "prod-us-west-1" : { + "credentialScope" : { + "region" : "us-west-1" + }, + "deprecated" : true, + "variants" : [ { + "hostname" : "fsx-fips.us-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "prod-us-west-2" : { "credentialScope" : { "region" : "us-west-2" @@ -6440,6 +6486,7 @@ "tags" : [ "fips" ] } ] }, + "sa-east-1" : { }, "us-east-1" : { "variants" : [ { "hostname" : "fsx-fips.us-east-1.amazonaws.com", @@ -6452,6 +6499,12 @@ "tags" : [ "fips" ] } ] }, + "us-west-1" : { + "variants" : [ { + "hostname" : "fsx-fips.us-west-1.amazonaws.com", + "tags" : [ "fips" ] + } ] + }, "us-west-2" : { "variants" : [ { "hostname" : "fsx-fips.us-west-2.amazonaws.com", @@ -17170,6 +17223,12 @@ "us-gov-west-1" : { } } }, + "controltower" : { + "endpoints" : { + "us-gov-east-1" : { }, + "us-gov-west-1" : { } + } + }, "data-ats.iot" : { "defaults" : { "credentialScope" : { diff --git a/service/chimesdkmessaging/api.go b/service/chimesdkmessaging/api.go index 2fc2348400..bdcaeb8ae4 100644 --- a/service/chimesdkmessaging/api.go +++ b/service/chimesdkmessaging/api.go @@ -4610,9 +4610,9 @@ func (c *ChimeSDKMessaging) SearchChannelsRequest(input *SearchChannelsInput) (r // SearchChannels API operation for Amazon Chime SDK Messaging. // -// Allows an AppInstanceUser to search the channels that they belong to. The -// AppInstanceUser can search by membership or external ID. An AppInstanceAdmin -// can search across all channels within the AppInstance. +// Allows ChimeBearer to search channels by channel members. AppInstanceUsers +// can search across the channels that they belong to. AppInstanceAdmins can +// search across all channels. // // 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 @@ -7238,7 +7238,7 @@ type ChannelSummary struct { // The ARN of the channel. ChannelArn *string `min:"5" type:"string"` - // The time at which the last message in a channel was sent. + // The time at which the last persistent message in a channel was sent. LastMessageTimestamp *time.Time `type:"timestamp"` // The metadata of the channel. diff --git a/service/cloudtrail/api.go b/service/cloudtrail/api.go index f750326db5..24350dc8ae 100644 --- a/service/cloudtrail/api.go +++ b/service/cloudtrail/api.go @@ -471,8 +471,8 @@ func (c *CloudTrail) CreateTrailRequest(input *CreateTrailInput) (req *request.R // This exception is thrown when the policy on the Amazon SNS topic is not sufficient. // // - InsufficientEncryptionPolicyException -// This exception is thrown when the policy on the S3 bucket or KMS key is not -// sufficient. +// This exception is thrown when the policy on the S3 bucket or KMS key does +// not have sufficient permissions for the operation. // // - InvalidS3BucketNameException // This exception is thrown when the provided S3 bucket name is not valid. @@ -1094,8 +1094,10 @@ func (c *CloudTrail) GetChannelRequest(input *GetChannelInput) (req *request.Req // GetChannel API operation for AWS CloudTrail. // -// Returns the specified CloudTrail service-linked channel. Amazon Web Services -// services create service-linked channels to view CloudTrail events. +// Returns information about a specific channel. Amazon Web Services services +// create service-linked channels to get information about CloudTrail events +// on your behalf. For more information about service-linked channels, see Viewing +// service-linked channels for CloudTrail by using the CLI. (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/viewing-service-linked-channels.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 @@ -1107,8 +1109,7 @@ func (c *CloudTrail) GetChannelRequest(input *GetChannelInput) (req *request.Req // Returned Error Types: // // - ChannelARNInvalidException -// The specified channel ARN is not valid or does not map to a channel in your -// account. +// This exception is thrown when the specified value of ChannelARN is not valid. // // - ChannelNotFoundException // The specified channel was not found. @@ -1394,7 +1395,7 @@ func (c *CloudTrail) GetImportRequest(input *GetImportInput) (req *request.Reque // GetImport API operation for AWS CloudTrail. // -// Returns information for the specified import. +// Returns information about a specific import. // // 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 @@ -1969,7 +1970,11 @@ func (c *CloudTrail) ListChannelsRequest(input *ListChannelsInput) (req *request // ListChannels API operation for AWS CloudTrail. // -// Returns all CloudTrail channels. +// Lists the channels in the current account, and their source names. Amazon +// Web Services services create service-linked channels get information about +// CloudTrail events on your behalf. For more information about service-linked +// channels, see Viewing service-linked channels for CloudTrail by using the +// CLI (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/viewing-service-linked-channels.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 @@ -3613,8 +3618,8 @@ func (c *CloudTrail) PutInsightSelectorsRequest(input *PutInsightSelectorsInput) // This exception is thrown when the policy on the S3 bucket is not sufficient. // // - InsufficientEncryptionPolicyException -// This exception is thrown when the policy on the S3 bucket or KMS key is not -// sufficient. +// This exception is thrown when the policy on the S3 bucket or KMS key does +// not have sufficient permissions for the operation. // // - S3BucketDoesNotExistException // This exception is thrown when the specified S3 bucket does not exist. @@ -3960,7 +3965,12 @@ func (c *CloudTrail) StartImportRequest(input *StartImportInput) (req *request.R // StartImport API operation for AWS CloudTrail. // // Starts an import of logged trail events from a source S3 bucket to a destination -// event data store. +// event data store. By default, CloudTrail only imports events contained in +// the S3 bucket's CloudTrail prefix and the prefixes inside the CloudTrail +// prefix, and does not check prefixes for other Amazon Web Services services. +// If you want to import CloudTrail events contained in another prefix, you +// must include the prefix in the S3LocationUri. For more considerations about +// importing trail events, see Considerations (https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-copy-trail-to-lake.html#cloudtrail-trail-copy-considerations). // // When you start a new import, the Destinations and ImportSource parameters // are required. Before starting a new import, disable any access control lists @@ -3994,8 +4004,8 @@ func (c *CloudTrail) StartImportRequest(input *StartImportInput) (req *request.R // The event data store is not in a status that supports the operation. // // - InvalidEventDataStoreCategoryException -// This exception is thrown when the event data store category is not valid -// for the import. +// This exception is thrown when event categories of specified event data stores +// are not valid. // // - InactiveEventDataStoreException // The event data store is inactive. @@ -4210,7 +4220,8 @@ func (c *CloudTrail) StartQueryRequest(input *StartQueryInput) (req *request.Req // StartQuery API operation for AWS CloudTrail. // // Starts a CloudTrail Lake query. The required QueryStatement parameter provides -// your SQL query, enclosed in single quotation marks. +// your SQL query, enclosed in single quotation marks. Use the optional DeliveryS3Uri +// parameter to deliver the query results to an S3 bucket. // // 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 @@ -4244,6 +4255,18 @@ func (c *CloudTrail) StartQueryRequest(input *StartQueryInput) (req *request.Req // You are already running the maximum number of concurrent queries. Wait a // minute for some queries to finish, and then run the query again. // +// - InvalidS3PrefixException +// This exception is thrown when the provided S3 prefix is not valid. +// +// - InvalidS3BucketNameException +// This exception is thrown when the provided S3 bucket name is not valid. +// +// - InsufficientS3BucketPolicyException +// This exception is thrown when the policy on the S3 bucket is not sufficient. +// +// - S3BucketDoesNotExistException +// This exception is thrown when the specified S3 bucket does not exist. +// // - OperationNotPermittedException // This exception is thrown when the requested operation is not permitted. // @@ -4688,8 +4711,8 @@ func (c *CloudTrail) UpdateTrailRequest(input *UpdateTrailInput) (req *request.R // This exception is thrown when the policy on the Amazon SNS topic is not sufficient. // // - InsufficientEncryptionPolicyException -// This exception is thrown when the policy on the S3 bucket or KMS key is not -// sufficient. +// This exception is thrown when the policy on the S3 bucket or KMS key does +// not have sufficient permissions for the operation. // // - TrailNotFoundException // This exception is thrown when the trail with the given name is not found. @@ -5533,7 +5556,7 @@ func (s *CancelQueryOutput) SetQueryStatus(v string) *CancelQueryOutput { type Channel struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the channel. + // The Amazon Resource Name (ARN) of a channel. ChannelArn *string `min:"3" type:"string"` // The name of the CloudTrail channel. For service-linked channels, the name @@ -5573,8 +5596,7 @@ func (s *Channel) SetName(v string) *Channel { return s } -// The specified channel ARN is not valid or does not map to a channel in your -// account. +// This exception is thrown when the specified value of ChannelARN is not valid. type ChannelARNInvalidException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -6204,7 +6226,7 @@ type CreateTrailInput struct { IsOrganizationTrail *bool `type:"boolean"` // Specifies the KMS key ID to use to encrypt the logs delivered by CloudTrail. - // The value can be an alias name prefixed by "alias/", a fully specified ARN + // The value can be an alias name prefixed by alias/, a fully specified ARN // to an alias, a fully specified ARN to a key, or a globally unique identifier. // // CloudTrail also supports KMS multi-Region keys. For more information about @@ -6398,7 +6420,7 @@ type CreateTrailOutput struct { // Specifies whether the trail is an organization trail. IsOrganizationTrail *bool `type:"boolean"` - // Specifies the KMS key ID that encrypts the logs delivered by CloudTrail. + // Specifies the KMS key ID that encrypts the events delivered by CloudTrail. // The value is a fully specified ARN to a KMS key in the following format. // // arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012 @@ -6593,7 +6615,7 @@ type DataResource struct { // // * AWS::DynamoDB::Table // - // The following resource types are also availble through advanced event selectors. + // The following resource types are also available through advanced event selectors. // Basic event selector resource types are valid in advanced event selectors, // but advanced event selector resource types are not valid in basic event selectors. // For more information, see AdvancedFieldSelector$Field. @@ -6890,6 +6912,12 @@ func (s *DescribeQueryInput) SetQueryId(v string) *DescribeQueryInput { type DescribeQueryOutput struct { _ struct{} `type:"structure"` + // The URI for the S3 bucket where CloudTrail delivered query results, if applicable. + DeliveryS3Uri *string `type:"string"` + + // The delivery status. + DeliveryStatus *string `type:"string" enum:"DeliveryStatus"` + // The error message returned if a query failed. ErrorMessage *string `min:"4" type:"string"` @@ -6927,6 +6955,18 @@ func (s DescribeQueryOutput) GoString() string { return s.String() } +// SetDeliveryS3Uri sets the DeliveryS3Uri field's value. +func (s *DescribeQueryOutput) SetDeliveryS3Uri(v string) *DescribeQueryOutput { + s.DeliveryS3Uri = &v + return s +} + +// SetDeliveryStatus sets the DeliveryStatus field's value. +func (s *DescribeQueryOutput) SetDeliveryStatus(v string) *DescribeQueryOutput { + s.DeliveryStatus = &v + return s +} + // SetErrorMessage sets the ErrorMessage field's value. func (s *DescribeQueryOutput) SetErrorMessage(v string) *DescribeQueryOutput { s.ErrorMessage = &v @@ -7062,13 +7102,14 @@ func (s *DescribeTrailsOutput) SetTrailList(v []*Trail) *DescribeTrailsOutput { type Destination struct { _ struct{} `type:"structure"` - // The location of the service. For service-linked channels, this is the name - // of the Amazon Web Services service. + // For service-linked channels, the value is the name of the Amazon Web Services + // service. // // Location is a required field Location *string `min:"3" type:"string" required:"true"` - // The type of service. For service-linked channels, the value is AWS_SERVICE. + // The type of destination for events arriving from a channel. For service-linked + // channels, the value is AWS_SERVICE. // // Type is a required field Type *string `type:"string" required:"true" enum:"DestinationType"` @@ -7840,7 +7881,7 @@ func (s *EventSelector) SetReadWriteType(v string) *EventSelector { type GetChannelInput struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the CloudTrail service-linked channel. + // The ARN or UUID of a channel. // // Channel is a required field Channel *string `min:"3" type:"string" required:"true"` @@ -7889,26 +7930,24 @@ func (s *GetChannelInput) SetChannel(v string) *GetChannelInput { type GetChannelOutput struct { _ struct{} `type:"structure"` - // The ARN of the CloudTrail service-linked channel. + // The ARN of an channel returned by a GetChannel request. ChannelArn *string `min:"3" type:"string"` - // The Amazon Web Services service that created the CloudTrail service-linked - // channel. + // The Amazon Web Services service that created the service-linked channel. Destinations []*Destination `min:"1" type:"list"` - // The name of the CloudTrail service-linked channel. For service-linked channels, - // the value is aws-service-channel/service-name/custom-suffix where service-name - // represents the name of the Amazon Web Services service that created the channel - // and custom-suffix represents the suffix generated by the Amazon Web Services + // The name of the CloudTrail channel. For service-linked channels, the value + // is aws-service-channel/service-name/custom-suffix where service-name represents + // the name of the Amazon Web Services service that created the channel and + // custom-suffix represents the suffix generated by the Amazon Web Services // service. Name *string `min:"3" type:"string"` - // The trail or event data store for the CloudTrail service-linked channel. + // The event source for the CloudTrail channel. Source *string `min:"1" type:"string"` // Provides information about the advanced event selectors configured for the - // service-linked channel, and whether the service-linked channel applies to - // all regions or one region. + // channel, and whether the channel applies to all regions or a single region. SourceConfig *SourceConfig `type:"structure"` } @@ -8292,7 +8331,7 @@ type GetImportOutput struct { // The timestamp of the import's creation. CreatedTimestamp *time.Time `type:"timestamp"` - // The destination event data store. + // The ARN of the destination event data store. Destinations []*string `min:"1" type:"list"` // Used with StartEventTime to bound a StartImport request, and limit imported @@ -8305,7 +8344,10 @@ type GetImportOutput struct { // The source S3 bucket. ImportSource *ImportSource `type:"structure"` - // Provides statistics for the import. + // Provides statistics for the import. CloudTrail does not update import statistics + // in real-time. Returned values for parameters such as EventsCompleted may + // be lower than the actual value, because CloudTrail updates statistics incrementally + // over the course of the import. ImportStatistics *ImportStatistics `type:"structure"` // The status of the import. @@ -9173,17 +9215,20 @@ func (s *ImportSource) SetS3(v *S3ImportSource) *ImportSource { return s } -// Provides statistics for the specified ImportID. +// Provides statistics for the specified ImportID. CloudTrail does not update +// import statistics in real-time. Returned values for parameters such as EventsCompleted +// may be lower than the actual value, because CloudTrail updates statistics +// incrementally over the course of the import. type ImportStatistics struct { _ struct{} `type:"structure"` - // The number of trail events imported. + // The number of trail events imported into the event data store. EventsCompleted *int64 `type:"long"` // The number of failed entries. FailedEntries *int64 `type:"long"` - // The number of files that completed import. + // The number of log files that completed import. FilesCompleted *int64 `type:"long"` // The number of S3 prefixes that completed import. @@ -9248,7 +9293,7 @@ type ImportsListItem struct { // The timestamp of the import's creation. CreatedTimestamp *time.Time `type:"timestamp"` - // The destination event data store. + // The ARN of the destination event data store. Destinations []*string `min:"1" type:"list"` // The ID of the import. @@ -9603,8 +9648,8 @@ func (s *InsufficientDependencyServiceAccessPermissionException) RequestID() str return s.RespMetadata.RequestID } -// This exception is thrown when the policy on the S3 bucket or KMS key is not -// sufficient. +// This exception is thrown when the policy on the S3 bucket or KMS key does +// not have sufficient permissions for the operation. type InsufficientEncryptionPolicyException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -10057,8 +10102,8 @@ func (s *InvalidEventCategoryException) RequestID() string { return s.RespMetadata.RequestID } -// This exception is thrown when the event data store category is not valid -// for the import. +// This exception is thrown when event categories of specified event data stores +// are not valid. type InvalidEventDataStoreCategoryException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -11652,7 +11697,11 @@ type ListChannelsInput struct { // The maximum number of CloudTrail channels to display on a single page. MaxResults *int64 `min:"1" type:"integer"` - // A token you can use to get the next page of results. + // The token to use to get the next page of results after a previous API call. + // This token must be passed in with the same parameters that were specified + // in the original call. For example, if the original call specified an AttributeKey + // of 'Username' with a value of 'root', the call with NextToken should include + // those same parameters. NextToken *string `min:"4" type:"string"` } @@ -11705,10 +11754,10 @@ func (s *ListChannelsInput) SetNextToken(v string) *ListChannelsInput { type ListChannelsOutput struct { _ struct{} `type:"structure"` - // The list of CloudTrail channels. + // The list of channels in the account. Channels []*Channel `type:"list"` - // A token used to get the next page of results. + // The token to use to get the next page of results after a previous API call. NextToken *string `min:"4" type:"string"` } @@ -11955,7 +12004,7 @@ func (s *ListImportFailuresOutput) SetNextToken(v string) *ListImportFailuresOut type ListImportsInput struct { _ struct{} `type:"structure"` - // The destination event data store. + // The ARN of the destination event data store. Destination *string `min:"3" type:"string"` // The status of the import. @@ -14286,15 +14335,14 @@ func (s *S3ImportSource) SetS3LocationUri(v string) *S3ImportSource { return s } -// Contains configuration information about the service-linked channel. +// Contains configuration information about the channel. type SourceConfig struct { _ struct{} `type:"structure"` - // The advanced event selectors configured for the service-linked channel. + // The advanced event selectors that are configured for the channel. AdvancedEventSelectors []*AdvancedEventSelector `type:"list"` - // Specifies whether the service-linked channel applies to one region or all - // regions. + // Specifies whether the channel applies to a single region or to all regions. ApplyToAllRegions *bool `type:"boolean"` } @@ -14331,11 +14379,15 @@ func (s *SourceConfig) SetApplyToAllRegions(v bool) *SourceConfig { type StartImportInput struct { _ struct{} `type:"structure"` - // The destination event data store. Use this parameter for a new import. + // The ARN of the destination event data store. Use this parameter for a new + // import. Destinations []*string `min:"1" type:"list"` // Use with StartEventTime to bound a StartImport request, and limit imported // trail events to only those events logged within a specified time period. + // When you specify a time range, CloudTrail checks the prefix and log file + // names to verify the names contain a date between the specified StartEventTime + // and EndEventTime before attempting to import events. EndEventTime *time.Time `type:"timestamp"` // The ID of the import. Use this parameter when you are retrying an import. @@ -14346,6 +14398,9 @@ type StartImportInput struct { // Use with EndEventTime to bound a StartImport request, and limit imported // trail events to only those events logged within a specified time period. + // When you specify a time range, CloudTrail checks the prefix and log file + // names to verify the names contain a date between the specified StartEventTime + // and EndEventTime before attempting to import events. StartEventTime *time.Time `type:"timestamp"` } @@ -14424,7 +14479,7 @@ type StartImportOutput struct { // The timestamp for the import's creation. CreatedTimestamp *time.Time `type:"timestamp"` - // The destination event data store. + // The ARN of the destination event data store. Destinations []*string `min:"1" type:"list"` // Used with StartEventTime to bound a StartImport request, and limit imported @@ -14434,7 +14489,7 @@ type StartImportOutput struct { // The ID of the import. ImportId *string `min:"36" type:"string"` - // The source S3 bucket. + // The source S3 bucket for the import. ImportSource *ImportSource `type:"structure"` // Shows the status of the import after a StartImport request. An import finishes @@ -14595,6 +14650,9 @@ func (s StartLoggingOutput) GoString() string { type StartQueryInput struct { _ struct{} `type:"structure"` + // The URI for the S3 bucket where CloudTrail delivers the query results. + DeliveryS3Uri *string `type:"string"` + // The SQL code of your query. // // QueryStatement is a required field @@ -14635,6 +14693,12 @@ func (s *StartQueryInput) Validate() error { return nil } +// SetDeliveryS3Uri sets the DeliveryS3Uri field's value. +func (s *StartQueryInput) SetDeliveryS3Uri(v string) *StartQueryInput { + s.DeliveryS3Uri = &v + return s +} + // SetQueryStatement sets the QueryStatement field's value. func (s *StartQueryInput) SetQueryStatement(v string) *StartQueryInput { s.QueryStatement = &v @@ -14727,7 +14791,7 @@ type StopImportOutput struct { // The timestamp of the import's creation. CreatedTimestamp *time.Time `type:"timestamp"` - // The destination event data store. + // The ARN of the destination event data store. Destinations []*string `min:"1" type:"list"` // Used with StartEventTime to bound a StartImport request, and limit imported @@ -14737,7 +14801,7 @@ type StopImportOutput struct { // The ID for the import. ImportId *string `min:"36" type:"string"` - // The source S3 bucket. + // The source S3 bucket for the import. ImportSource *ImportSource `type:"structure"` // Returns information on the stopped import. @@ -16123,6 +16187,50 @@ func (s *UpdateTrailOutput) SetTrailARN(v string) *UpdateTrailOutput { return s } +const ( + // DeliveryStatusSuccess is a DeliveryStatus enum value + DeliveryStatusSuccess = "SUCCESS" + + // DeliveryStatusFailed is a DeliveryStatus enum value + DeliveryStatusFailed = "FAILED" + + // DeliveryStatusFailedSigningFile is a DeliveryStatus enum value + DeliveryStatusFailedSigningFile = "FAILED_SIGNING_FILE" + + // DeliveryStatusPending is a DeliveryStatus enum value + DeliveryStatusPending = "PENDING" + + // DeliveryStatusResourceNotFound is a DeliveryStatus enum value + DeliveryStatusResourceNotFound = "RESOURCE_NOT_FOUND" + + // DeliveryStatusAccessDenied is a DeliveryStatus enum value + DeliveryStatusAccessDenied = "ACCESS_DENIED" + + // DeliveryStatusAccessDeniedSigningFile is a DeliveryStatus enum value + DeliveryStatusAccessDeniedSigningFile = "ACCESS_DENIED_SIGNING_FILE" + + // DeliveryStatusCancelled is a DeliveryStatus enum value + DeliveryStatusCancelled = "CANCELLED" + + // DeliveryStatusUnknown is a DeliveryStatus enum value + DeliveryStatusUnknown = "UNKNOWN" +) + +// DeliveryStatus_Values returns all elements of the DeliveryStatus enum +func DeliveryStatus_Values() []string { + return []string{ + DeliveryStatusSuccess, + DeliveryStatusFailed, + DeliveryStatusFailedSigningFile, + DeliveryStatusPending, + DeliveryStatusResourceNotFound, + DeliveryStatusAccessDenied, + DeliveryStatusAccessDeniedSigningFile, + DeliveryStatusCancelled, + DeliveryStatusUnknown, + } +} + const ( // DestinationTypeEventDataStore is a DestinationType enum value DestinationTypeEventDataStore = "EVENT_DATA_STORE" diff --git a/service/cloudtrail/errors.go b/service/cloudtrail/errors.go index 341d6f6328..e2e855deea 100644 --- a/service/cloudtrail/errors.go +++ b/service/cloudtrail/errors.go @@ -36,8 +36,7 @@ const ( // ErrCodeChannelARNInvalidException for service response error code // "ChannelARNInvalidException". // - // The specified channel ARN is not valid or does not map to a channel in your - // account. + // This exception is thrown when the specified value of ChannelARN is not valid. ErrCodeChannelARNInvalidException = "ChannelARNInvalidException" // ErrCodeChannelNotFoundException for service response error code @@ -146,8 +145,8 @@ const ( // ErrCodeInsufficientEncryptionPolicyException for service response error code // "InsufficientEncryptionPolicyException". // - // This exception is thrown when the policy on the S3 bucket or KMS key is not - // sufficient. + // This exception is thrown when the policy on the S3 bucket or KMS key does + // not have sufficient permissions for the operation. ErrCodeInsufficientEncryptionPolicyException = "InsufficientEncryptionPolicyException" // ErrCodeInsufficientS3BucketPolicyException for service response error code @@ -194,8 +193,8 @@ const ( // ErrCodeInvalidEventDataStoreCategoryException for service response error code // "InvalidEventDataStoreCategoryException". // - // This exception is thrown when the event data store category is not valid - // for the import. + // This exception is thrown when event categories of specified event data stores + // are not valid. ErrCodeInvalidEventDataStoreCategoryException = "InvalidEventDataStoreCategoryException" // ErrCodeInvalidEventDataStoreStatusException for service response error code diff --git a/service/configservice/api.go b/service/configservice/api.go index 66b8522adb..c039fd926f 100644 --- a/service/configservice/api.go +++ b/service/configservice/api.go @@ -75,7 +75,7 @@ func (c *ConfigService) BatchGetAggregateResourceConfigRequest(input *BatchGetAg // Returned Error Types: // // - ValidationException -// The requested action is not valid. +// The requested action is invalid. // // For PutStoredQuery, you will see this exception if there are missing required // fields or if the input value fails the validation, or if you are trying to @@ -173,7 +173,7 @@ func (c *ConfigService) BatchGetResourceConfigRequest(input *BatchGetResourceCon // Returned Error Types: // // - ValidationException -// The requested action is not valid. +// The requested action is invalid. // // For PutStoredQuery, you will see this exception if there are missing required // fields or if the input value fails the validation, or if you are trying to @@ -352,7 +352,7 @@ func (c *ConfigService) DeleteConfigRuleRequest(input *DeleteConfigRuleInput) (r // Returned Error Types: // // - NoSuchConfigRuleException -// The Config rule in the request is not valid. Verify that the rule is an Config +// The Config rule in the request is invalid. Verify that the rule is an Config // Custom Policy rule, that the rule name is correct, and that valid Amazon // Resouce Names (ARNs) are used before trying again. // @@ -828,7 +828,7 @@ func (c *ConfigService) DeleteEvaluationResultsRequest(input *DeleteEvaluationRe // Returned Error Types: // // - NoSuchConfigRuleException -// The Config rule in the request is not valid. Verify that the rule is an Config +// The Config rule in the request is invalid. Verify that the rule is an Config // Custom Policy rule, that the rule name is correct, and that valid Amazon // Resouce Names (ARNs) are used before trying again. // @@ -927,8 +927,8 @@ func (c *ConfigService) DeleteOrganizationConfigRuleRequest(input *DeleteOrganiz // Deletes the specified organization Config rule and all of its evaluation // results from all member accounts in that organization. // -// Only a master account and a delegated administrator account can delete an -// organization Config rule. When calling this API with a delegated administrator, +// Only a management account and a delegated administrator account can delete +// an organization Config rule. When calling this API with a delegated administrator, // you must ensure Organizations ListDelegatedAdministrator permissions are // added. // @@ -945,7 +945,7 @@ func (c *ConfigService) DeleteOrganizationConfigRuleRequest(input *DeleteOrganiz // Returned Error Types: // // - NoSuchOrganizationConfigRuleException -// The Config rule in the request is not valid. Verify that the rule is an organization +// The Config rule in the request is invalid. Verify that the rule is an organization // Config Custom Policy rule, that the rule name is correct, and that valid // Amazon Resouce Names (ARNs) are used before trying again. // @@ -998,7 +998,7 @@ func (c *ConfigService) DeleteOrganizationConfigRuleRequest(input *DeleteOrganiz // // For all OrganizationConfigRule and OrganizationConformancePack APIs, Config // throws an exception if APIs are called from member accounts. All APIs must -// be called from organization master account. +// be called from organization management account. // // See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteOrganizationConfigRule func (c *ConfigService) DeleteOrganizationConfigRule(input *DeleteOrganizationConfigRuleInput) (*DeleteOrganizationConfigRuleOutput, error) { @@ -1069,10 +1069,10 @@ func (c *ConfigService) DeleteOrganizationConformancePackRequest(input *DeleteOr // Deletes the specified organization conformance pack and all of the Config // rules and remediation actions from all member accounts in that organization. // -// Only a master account or a delegated administrator account can delete an -// organization conformance pack. When calling this API with a delegated administrator, -// you must ensure Organizations ListDelegatedAdministrator permissions are -// added. +// Only a management account or a delegated administrator account can delete +// an organization conformance pack. When calling this API with a delegated +// administrator, you must ensure Organizations ListDelegatedAdministrator permissions +// are added. // // Config sets the state of a conformance pack to DELETE_IN_PROGRESS until the // deletion is complete. You cannot update a conformance pack while it is in @@ -1143,7 +1143,7 @@ func (c *ConfigService) DeleteOrganizationConformancePackRequest(input *DeleteOr // // For all OrganizationConfigRule and OrganizationConformancePack APIs, Config // throws an exception if APIs are called from member accounts. All APIs must -// be called from organization master account. +// be called from organization management account. // // See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteOrganizationConformancePack func (c *ConfigService) DeleteOrganizationConformancePack(input *DeleteOrganizationConformancePackInput) (*DeleteOrganizationConformancePackOutput, error) { @@ -1324,9 +1324,9 @@ func (c *ConfigService) DeleteRemediationConfigurationRequest(input *DeleteRemed // a service-linked role. // // - For PutConformancePack and PutOrganizationConformancePack, a conformance -// pack cannot be created because you do not have permissions: To call IAM -// GetRole action or create a service-linked role. To read Amazon S3 bucket -// or call SSM:GetDocument. +// pack cannot be created because you do not have the following permissions: +// You do not have permission to call IAM GetRole action or create a service-linked +// role. You do not have permission to read Amazon S3 bucket or call SSM:GetDocument. // // - InvalidParameterValueException // One or more of the specified parameters are invalid. Verify that your parameters @@ -1495,7 +1495,7 @@ func (c *ConfigService) DeleteResourceConfigRequest(input *DeleteResourceConfigI // Returned Error Types: // // - ValidationException -// The requested action is not valid. +// The requested action is invalid. // // For PutStoredQuery, you will see this exception if there are missing required // fields or if the input value fails the validation, or if you are trying to @@ -1671,7 +1671,7 @@ func (c *ConfigService) DeleteStoredQueryRequest(input *DeleteStoredQueryInput) // Returned Error Types: // // - ValidationException -// The requested action is not valid. +// The requested action is invalid. // // For PutStoredQuery, you will see this exception if there are missing required // fields or if the input value fails the validation, or if you are trying to @@ -1867,7 +1867,7 @@ func (c *ConfigService) DescribeAggregateComplianceByConfigRulesRequest(input *D // Returned Error Types: // // - ValidationException -// The requested action is not valid. +// The requested action is invalid. // // For PutStoredQuery, you will see this exception if there are missing required // fields or if the input value fails the validation, or if you are trying to @@ -2027,7 +2027,7 @@ func (c *ConfigService) DescribeAggregateComplianceByConformancePacksRequest(inp // Returned Error Types: // // - ValidationException -// The requested action is not valid. +// The requested action is invalid. // // For PutStoredQuery, you will see this exception if there are missing required // fields or if the input value fails the validation, or if you are trying to @@ -2352,7 +2352,7 @@ func (c *ConfigService) DescribeComplianceByConfigRuleRequest(input *DescribeCom // are valid and try again. // // - NoSuchConfigRuleException -// The Config rule in the request is not valid. Verify that the rule is an Config +// The Config rule in the request is invalid. Verify that the rule is an Config // Custom Policy rule, that the rule name is correct, and that valid Amazon // Resouce Names (ARNs) are used before trying again. // @@ -2661,7 +2661,7 @@ func (c *ConfigService) DescribeConfigRuleEvaluationStatusRequest(input *Describ // Returned Error Types: // // - NoSuchConfigRuleException -// The Config rule in the request is not valid. Verify that the rule is an Config +// The Config rule in the request is invalid. Verify that the rule is an Config // Custom Policy rule, that the rule name is correct, and that valid Amazon // Resouce Names (ARNs) are used before trying again. // @@ -2807,7 +2807,7 @@ func (c *ConfigService) DescribeConfigRulesRequest(input *DescribeConfigRulesInp // Returned Error Types: // // - NoSuchConfigRuleException -// The Config rule in the request is not valid. Verify that the rule is an Config +// The Config rule in the request is invalid. Verify that the rule is an Config // Custom Policy rule, that the rule name is correct, and that valid Amazon // Resouce Names (ARNs) are used before trying again. // @@ -4032,7 +4032,7 @@ func (c *ConfigService) DescribeOrganizationConfigRuleStatusesRequest(input *Des // Returned Error Types: // // - NoSuchOrganizationConfigRuleException -// The Config rule in the request is not valid. Verify that the rule is an organization +// The Config rule in the request is invalid. Verify that the rule is an organization // Config Custom Policy rule, that the rule name is correct, and that valid // Amazon Resouce Names (ARNs) are used before trying again. // @@ -4066,7 +4066,7 @@ func (c *ConfigService) DescribeOrganizationConfigRuleStatusesRequest(input *Des // // For all OrganizationConfigRule and OrganizationConformancePack APIs, Config // throws an exception if APIs are called from member accounts. All APIs must -// be called from organization master account. +// be called from organization management account. // // See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeOrganizationConfigRuleStatuses func (c *ConfigService) DescribeOrganizationConfigRuleStatuses(input *DescribeOrganizationConfigRuleStatusesInput) (*DescribeOrganizationConfigRuleStatusesOutput, error) { @@ -4221,7 +4221,7 @@ func (c *ConfigService) DescribeOrganizationConfigRulesRequest(input *DescribeOr // Returned Error Types: // // - NoSuchOrganizationConfigRuleException -// The Config rule in the request is not valid. Verify that the rule is an organization +// The Config rule in the request is invalid. Verify that the rule is an organization // Config Custom Policy rule, that the rule name is correct, and that valid // Amazon Resouce Names (ARNs) are used before trying again. // @@ -4255,7 +4255,7 @@ func (c *ConfigService) DescribeOrganizationConfigRulesRequest(input *DescribeOr // // For all OrganizationConfigRule and OrganizationConformancePack APIs, Config // throws an exception if APIs are called from member accounts. All APIs must -// be called from organization master account. +// be called from organization management account. // // See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeOrganizationConfigRules func (c *ConfigService) DescribeOrganizationConfigRules(input *DescribeOrganizationConfigRulesInput) (*DescribeOrganizationConfigRulesOutput, error) { @@ -4436,7 +4436,7 @@ func (c *ConfigService) DescribeOrganizationConformancePackStatusesRequest(input // // For all OrganizationConfigRule and OrganizationConformancePack APIs, Config // throws an exception if APIs are called from member accounts. All APIs must -// be called from organization master account. +// be called from organization management account. // // See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeOrganizationConformancePackStatuses func (c *ConfigService) DescribeOrganizationConformancePackStatuses(input *DescribeOrganizationConformancePackStatusesInput) (*DescribeOrganizationConformancePackStatusesOutput, error) { @@ -4627,7 +4627,7 @@ func (c *ConfigService) DescribeOrganizationConformancePacksRequest(input *Descr // // For all OrganizationConfigRule and OrganizationConformancePack APIs, Config // throws an exception if APIs are called from member accounts. All APIs must -// be called from organization master account. +// be called from organization management account. // // See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeOrganizationConformancePacks func (c *ConfigService) DescribeOrganizationConformancePacks(input *DescribeOrganizationConformancePacksInput) (*DescribeOrganizationConformancePacksOutput, error) { @@ -5435,7 +5435,7 @@ func (c *ConfigService) GetAggregateComplianceDetailsByConfigRuleRequest(input * // Returned Error Types: // // - ValidationException -// The requested action is not valid. +// The requested action is invalid. // // For PutStoredQuery, you will see this exception if there are missing required // fields or if the input value fails the validation, or if you are trying to @@ -5593,7 +5593,7 @@ func (c *ConfigService) GetAggregateConfigRuleComplianceSummaryRequest(input *Ge // Returned Error Types: // // - ValidationException -// The requested action is not valid. +// The requested action is invalid. // // For PutStoredQuery, you will see this exception if there are missing required // fields or if the input value fails the validation, or if you are trying to @@ -5753,7 +5753,7 @@ func (c *ConfigService) GetAggregateConformancePackComplianceSummaryRequest(inpu // Returned Error Types: // // - ValidationException -// The requested action is not valid. +// The requested action is invalid. // // For PutStoredQuery, you will see this exception if there are missing required // fields or if the input value fails the validation, or if you are trying to @@ -5915,7 +5915,7 @@ func (c *ConfigService) GetAggregateDiscoveredResourceCountsRequest(input *GetAg // Returned Error Types: // // - ValidationException -// The requested action is not valid. +// The requested action is invalid. // // For PutStoredQuery, you will see this exception if there are missing required // fields or if the input value fails the validation, or if you are trying to @@ -6064,7 +6064,7 @@ func (c *ConfigService) GetAggregateResourceConfigRequest(input *GetAggregateRes // Returned Error Types: // // - ValidationException -// The requested action is not valid. +// The requested action is invalid. // // For PutStoredQuery, you will see this exception if there are missing required // fields or if the input value fails the validation, or if you are trying to @@ -6177,7 +6177,7 @@ func (c *ConfigService) GetComplianceDetailsByConfigRuleRequest(input *GetCompli // returned in the previous response to get the next page of results. // // - NoSuchConfigRuleException -// The Config rule in the request is not valid. Verify that the rule is an Config +// The Config rule in the request is invalid. Verify that the rule is an Config // Custom Policy rule, that the rule name is correct, and that valid Amazon // Resouce Names (ARNs) are used before trying again. // @@ -6898,7 +6898,7 @@ func (c *ConfigService) GetCustomRulePolicyRequest(input *GetCustomRulePolicyInp // // Returned Error Types: // - NoSuchConfigRuleException -// The Config rule in the request is not valid. Verify that the rule is an Config +// The Config rule in the request is invalid. Verify that the rule is an Config // Custom Policy rule, that the rule name is correct, and that valid Amazon // Resouce Names (ARNs) are used before trying again. // @@ -7018,7 +7018,7 @@ func (c *ConfigService) GetDiscoveredResourceCountsRequest(input *GetDiscoveredR // Returned Error Types: // // - ValidationException -// The requested action is not valid. +// The requested action is invalid. // // For PutStoredQuery, you will see this exception if there are missing required // fields or if the input value fails the validation, or if you are trying to @@ -7170,7 +7170,7 @@ func (c *ConfigService) GetOrganizationConfigRuleDetailedStatusRequest(input *Ge // Returned Error Types: // // - NoSuchOrganizationConfigRuleException -// The Config rule in the request is not valid. Verify that the rule is an organization +// The Config rule in the request is invalid. Verify that the rule is an organization // Config Custom Policy rule, that the rule name is correct, and that valid // Amazon Resouce Names (ARNs) are used before trying again. // @@ -7204,7 +7204,7 @@ func (c *ConfigService) GetOrganizationConfigRuleDetailedStatusRequest(input *Ge // // For all OrganizationConfigRule and OrganizationConformancePack APIs, Config // throws an exception if APIs are called from member accounts. All APIs must -// be called from organization master account. +// be called from organization management account. // // See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetOrganizationConfigRuleDetailedStatus func (c *ConfigService) GetOrganizationConfigRuleDetailedStatus(input *GetOrganizationConfigRuleDetailedStatusInput) (*GetOrganizationConfigRuleDetailedStatusOutput, error) { @@ -7377,7 +7377,7 @@ func (c *ConfigService) GetOrganizationConformancePackDetailedStatusRequest(inpu // // For all OrganizationConfigRule and OrganizationConformancePack APIs, Config // throws an exception if APIs are called from member accounts. All APIs must -// be called from organization master account. +// be called from organization management account. // // See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetOrganizationConformancePackDetailedStatus func (c *ConfigService) GetOrganizationConformancePackDetailedStatus(input *GetOrganizationConformancePackDetailedStatusInput) (*GetOrganizationConformancePackDetailedStatusOutput, error) { @@ -7508,7 +7508,7 @@ func (c *ConfigService) GetOrganizationCustomRulePolicyRequest(input *GetOrganiz // Returned Error Types: // // - NoSuchOrganizationConfigRuleException -// The Config rule in the request is not valid. Verify that the rule is an organization +// The Config rule in the request is invalid. Verify that the rule is an organization // Config Custom Policy rule, that the rule name is correct, and that valid // Amazon Resouce Names (ARNs) are used before trying again. // @@ -7535,7 +7535,7 @@ func (c *ConfigService) GetOrganizationCustomRulePolicyRequest(input *GetOrganiz // // For all OrganizationConfigRule and OrganizationConformancePack APIs, Config // throws an exception if APIs are called from member accounts. All APIs must -// be called from organization master account. +// be called from organization management account. // // See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetOrganizationCustomRulePolicy func (c *ConfigService) GetOrganizationCustomRulePolicy(input *GetOrganizationCustomRulePolicyInput) (*GetOrganizationCustomRulePolicyOutput, error) { @@ -7633,7 +7633,7 @@ func (c *ConfigService) GetResourceConfigHistoryRequest(input *GetResourceConfig // Returned Error Types: // // - ValidationException -// The requested action is not valid. +// The requested action is invalid. // // For PutStoredQuery, you will see this exception if there are missing required // fields or if the input value fails the validation, or if you are trying to @@ -7644,7 +7644,7 @@ func (c *ConfigService) GetResourceConfigHistoryRequest(input *GetResourceConfig // the validation. // // - InvalidTimeRangeException -// The specified time range is not valid. The earlier time is not chronologically +// The specified time range is invalid. The earlier time is not chronologically // before the later time. // // - InvalidLimitException @@ -7789,7 +7789,7 @@ func (c *ConfigService) GetStoredQueryRequest(input *GetStoredQueryInput) (req * // Returned Error Types: // // - ValidationException -// The requested action is not valid. +// The requested action is invalid. // // For PutStoredQuery, you will see this exception if there are missing required // fields or if the input value fails the validation, or if you are trying to @@ -7894,7 +7894,7 @@ func (c *ConfigService) ListAggregateDiscoveredResourcesRequest(input *ListAggre // Returned Error Types: // // - ValidationException -// The requested action is not valid. +// The requested action is invalid. // // For PutStoredQuery, you will see this exception if there are missing required // fields or if the input value fails the validation, or if you are trying to @@ -8040,7 +8040,7 @@ func (c *ConfigService) ListConformancePackComplianceScoresRequest(input *ListCo // is the percentage of the number of compliant rule-resource combinations in // a conformance pack compared to the number of total possible rule-resource // combinations in the conformance pack. This metric provides you with a high-level -// view of the compliance state of your conformance packs, and can be used to +// view of the compliance state of your conformance packs. You can use it to // identify, investigate, and understand the level of compliance in your conformance // packs. // @@ -8214,7 +8214,7 @@ func (c *ConfigService) ListDiscoveredResourcesRequest(input *ListDiscoveredReso // Returned Error Types: // // - ValidationException -// The requested action is not valid. +// The requested action is invalid. // // For PutStoredQuery, you will see this exception if there are missing required // fields or if the input value fails the validation, or if you are trying to @@ -8370,7 +8370,7 @@ func (c *ConfigService) ListStoredQueriesRequest(input *ListStoredQueriesInput) // Returned Error Types: // // - ValidationException -// The requested action is not valid. +// The requested action is invalid. // // For PutStoredQuery, you will see this exception if there are missing required // fields or if the input value fails the validation, or if you are trying to @@ -8521,7 +8521,7 @@ func (c *ConfigService) ListTagsForResourceRequest(input *ListTagsForResourceInp // You have specified a resource that does not exist. // // - ValidationException -// The requested action is not valid. +// The requested action is invalid. // // For PutStoredQuery, you will see this exception if there are missing required // fields or if the input value fails the validation, or if you are trying to @@ -8830,9 +8830,9 @@ func (c *ConfigService) PutConfigRuleRequest(input *PutConfigRuleInput) (req *re // a service-linked role. // // - For PutConformancePack and PutOrganizationConformancePack, a conformance -// pack cannot be created because you do not have permissions: To call IAM -// GetRole action or create a service-linked role. To read Amazon S3 bucket -// or call SSM:GetDocument. +// pack cannot be created because you do not have the following permissions: +// You do not have permission to call IAM GetRole action or create a service-linked +// role. You do not have permission to read Amazon S3 bucket or call SSM:GetDocument. // // - NoAvailableConfigurationRecorderException // There are no configuration recorders available to provide the role needed @@ -8972,7 +8972,7 @@ func (c *ConfigService) PutConfigurationAggregatorRequest(input *PutConfiguratio // // For all OrganizationConfigRule and OrganizationConformancePack APIs, Config // throws an exception if APIs are called from member accounts. All APIs must -// be called from organization master account. +// be called from organization management account. // // - NoAvailableOrganizationException // Organization is no longer available. @@ -9148,16 +9148,16 @@ func (c *ConfigService) PutConformancePackRequest(input *PutConformancePackInput // // Creates or updates a conformance pack. A conformance pack is a collection // of Config rules that can be easily deployed in an account and a region and -// across Amazon Web Services Organization. For information on how many conformance -// packs you can have per account, see Service Limits (https://docs.aws.amazon.com/config/latest/developerguide/configlimits.html) +// across an organization. For information on how many conformance packs you +// can have per account, see Service Limits (https://docs.aws.amazon.com/config/latest/developerguide/configlimits.html) // in the Config Developer Guide. // // This API creates a service-linked role AWSServiceRoleForConfigConforms in // your account. The service-linked role is created only when the role does // not exist in your account. // -// You must specify one and only one of theTemplateS3Uri, TemplateBody or TemplateSSMDocumentDetails -// parameters. +// You must specify only one of the follow parameters: TemplateS3Uri, TemplateBody +// or TemplateSSMDocumentDetails. // // 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 @@ -9182,12 +9182,12 @@ func (c *ConfigService) PutConformancePackRequest(input *PutConformancePackInput // a service-linked role. // // - For PutConformancePack and PutOrganizationConformancePack, a conformance -// pack cannot be created because you do not have permissions: To call IAM -// GetRole action or create a service-linked role. To read Amazon S3 bucket -// or call SSM:GetDocument. +// pack cannot be created because you do not have the following permissions: +// You do not have permission to call IAM GetRole action or create a service-linked +// role. You do not have permission to read Amazon S3 bucket or call SSM:GetDocument. // // - ConformancePackTemplateValidationException -// You have specified a template that is not valid or supported. +// You have specified a template that is invalid or supported. // // - ResourceInUseException // You see this exception in the following cases: @@ -9220,8 +9220,9 @@ func (c *ConfigService) PutConformancePackRequest(input *PutConformancePackInput // are valid and try again. // // - MaxNumberOfConformancePacksExceededException -// You have reached the limit (6) of the number of conformance packs in an account -// (6 conformance pack with 25 Config rules per pack). +// You have reached the limit of the number of conformance packs you can create +// in an account. For more information, see Service Limits (https://docs.aws.amazon.com/config/latest/developerguide/configlimits.html) +// in the Config Developer Guide. // // See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutConformancePack func (c *ConfigService) PutConformancePack(input *PutConformancePackInput) (*PutConformancePackOutput, error) { @@ -9321,16 +9322,16 @@ func (c *ConfigService) PutDeliveryChannelRequest(input *PutDeliveryChannelInput // to describe your resources. Create a configuration recorder. // // - InvalidDeliveryChannelNameException -// The specified delivery channel name is not valid. +// The specified delivery channel name is invalid. // // - NoSuchBucketException // The specified Amazon S3 bucket does not exist. // // - InvalidS3KeyPrefixException -// The specified Amazon S3 key prefix is not valid. +// The specified Amazon S3 key prefix is invalid. // // - InvalidS3KmsKeyArnException -// The specified Amazon KMS Key ARN is not valid. +// The specified Amazon KMS Key ARN is invalid. // // - InvalidSNSTopicARNException // The specified Amazon SNS topic does not exist. @@ -9424,7 +9425,7 @@ func (c *ConfigService) PutEvaluationsRequest(input *PutEvaluationsInput) (req * // The specified ResultToken is invalid. // // - NoSuchConfigRuleException -// The Config rule in the request is not valid. Verify that the rule is an Config +// The Config rule in the request is invalid. Verify that the rule is an Config // Custom Policy rule, that the rule name is correct, and that valid Amazon // Resouce Names (ARNs) are used before trying again. // @@ -9507,7 +9508,7 @@ func (c *ConfigService) PutExternalEvaluationRequest(input *PutExternalEvaluatio // Returned Error Types: // // - NoSuchConfigRuleException -// The Config rule in the request is not valid. Verify that the rule is an Config +// The Config rule in the request is invalid. Verify that the rule is an Config // Custom Policy rule, that the rule name is correct, and that valid Amazon // Resouce Names (ARNs) are used before trying again. // @@ -9586,16 +9587,16 @@ func (c *ConfigService) PutOrganizationConfigRuleRequest(input *PutOrganizationC // see Service Limits (https://docs.aws.amazon.com/config/latest/developerguide/configlimits.html) // in the Config Developer Guide. // -// Only a master account and a delegated administrator can create or update +// Only a management account and a delegated administrator can create or update // an organization Config rule. When calling this API with a delegated administrator, // you must ensure Organizations ListDelegatedAdministrator permissions are // added. An organization can have up to 3 delegated administrators. // // This API enables organization service access through the EnableAWSServiceAccess // action and creates a service-linked role AWSServiceRoleForConfigMultiAccountSetup -// in the master or delegated administrator account of your organization. The -// service-linked role is created only when the role does not exist in the caller -// account. Config verifies the existence of role with GetRole action. +// in the management or delegated administrator account of your organization. +// The service-linked role is created only when the role does not exist in the +// caller account. Config verifies the existence of role with GetRole action. // // To use this API with delegated administrator, register a delegated administrator // by calling Amazon Web Services Organization register-delegated-administrator @@ -9610,12 +9611,12 @@ func (c *ConfigService) PutOrganizationConfigRuleRequest(input *PutOrganizationC // is a policy-as-code language that allows you to write policies that are enforced // by Config Custom Policy rules. Lambda uses custom code that you upload to // evaluate a custom rule. If you are adding a new Custom Lambda rule, you first -// need to create an Lambda function in the master account or a delegated administrator -// that the rule invokes to evaluate your resources. You also need to create -// an IAM role in the managed account that can be assumed by the Lambda function. -// When you use PutOrganizationConfigRule to add a Custom Lambda rule to Config, -// you must specify the Amazon Resource Name (ARN) that Lambda assigns to the -// function. +// need to create an Lambda function in the management account or a delegated +// administrator that the rule invokes to evaluate your resources. You also +// need to create an IAM role in the managed account that can be assumed by +// the Lambda function. When you use PutOrganizationConfigRule to add a Custom +// Lambda rule to Config, you must specify the Amazon Resource Name (ARN) that +// Lambda assigns to the function. // // Managed rules are predefined, customizable rules created by Config. For a // list of managed rules, see List of Config Managed Rules (https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html). @@ -9640,7 +9641,8 @@ func (c *ConfigService) PutOrganizationConfigRuleRequest(input *PutOrganizationC // // - MaxNumberOfOrganizationConfigRulesExceededException // You have reached the limit of the number of organization Config rules you -// can create. +// can create. For more information, see see Service Limits (https://docs.aws.amazon.com/config/latest/developerguide/configlimits.html) +// in the Config Developer Guide. // // - ResourceInUseException // You see this exception in the following cases: @@ -9673,7 +9675,7 @@ func (c *ConfigService) PutOrganizationConfigRuleRequest(input *PutOrganizationC // are valid and try again. // // - ValidationException -// The requested action is not valid. +// The requested action is invalid. // // For PutStoredQuery, you will see this exception if there are missing required // fields or if the input value fails the validation, or if you are trying to @@ -9706,7 +9708,7 @@ func (c *ConfigService) PutOrganizationConfigRuleRequest(input *PutOrganizationC // // For all OrganizationConfigRule and OrganizationConformancePack APIs, Config // throws an exception if APIs are called from member accounts. All APIs must -// be called from organization master account. +// be called from organization management account. // // - NoAvailableOrganizationException // Organization is no longer available. @@ -9729,9 +9731,9 @@ func (c *ConfigService) PutOrganizationConfigRuleRequest(input *PutOrganizationC // a service-linked role. // // - For PutConformancePack and PutOrganizationConformancePack, a conformance -// pack cannot be created because you do not have permissions: To call IAM -// GetRole action or create a service-linked role. To read Amazon S3 bucket -// or call SSM:GetDocument. +// pack cannot be created because you do not have the following permissions: +// You do not have permission to call IAM GetRole action or create a service-linked +// role. You do not have permission to read Amazon S3 bucket or call SSM:GetDocument. // // See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutOrganizationConfigRule func (c *ConfigService) PutOrganizationConfigRule(input *PutOrganizationConfigRuleInput) (*PutOrganizationConfigRuleOutput, error) { @@ -9803,14 +9805,14 @@ func (c *ConfigService) PutOrganizationConformancePackRequest(input *PutOrganiza // and how many Config rules you can have per account, see Service Limits (https://docs.aws.amazon.com/config/latest/developerguide/configlimits.html) // in the Config Developer Guide. // -// Only a master account and a delegated administrator can call this API. When -// calling this API with a delegated administrator, you must ensure Organizations +// Only a management account and a delegated administrator can call this API. +// When calling this API with a delegated administrator, you must ensure Organizations // ListDelegatedAdministrator permissions are added. An organization can have // up to 3 delegated administrators. // // This API enables organization service access for config-multiaccountsetup.amazonaws.com // through the EnableAWSServiceAccess action and creates a service-linked role -// AWSServiceRoleForConfigMultiAccountSetup in the master or delegated administrator +// AWSServiceRoleForConfigMultiAccountSetup in the management or delegated administrator // account of your organization. The service-linked role is created only when // the role does not exist in the caller account. To use this API with delegated // administrator, register a delegated administrator by calling Amazon Web Services @@ -9837,9 +9839,9 @@ func (c *ConfigService) PutOrganizationConformancePackRequest(input *PutOrganiza // Returned Error Types: // // - MaxNumberOfOrganizationConformancePacksExceededException -// You have reached the limit (6) of the number of organization conformance -// packs in an account (6 conformance pack with 25 Config rules per pack per -// account). +// You have reached the limit of the number of organization conformance packs +// you can create in an account. For more information, see Service Limits (https://docs.aws.amazon.com/config/latest/developerguide/configlimits.html) +// in the Config Developer Guide. // // - ResourceInUseException // You see this exception in the following cases: @@ -9868,7 +9870,7 @@ func (c *ConfigService) PutOrganizationConformancePackRequest(input *PutOrganiza // deletion is in progress. Try your request again later. // // - ValidationException -// The requested action is not valid. +// The requested action is invalid. // // For PutStoredQuery, you will see this exception if there are missing required // fields or if the input value fails the validation, or if you are trying to @@ -9901,7 +9903,7 @@ func (c *ConfigService) PutOrganizationConformancePackRequest(input *PutOrganiza // // For all OrganizationConfigRule and OrganizationConformancePack APIs, Config // throws an exception if APIs are called from member accounts. All APIs must -// be called from organization master account. +// be called from organization management account. // // - InsufficientPermissionsException // Indicates one of the following errors: @@ -9917,12 +9919,12 @@ func (c *ConfigService) PutOrganizationConformancePackRequest(input *PutOrganiza // a service-linked role. // // - For PutConformancePack and PutOrganizationConformancePack, a conformance -// pack cannot be created because you do not have permissions: To call IAM -// GetRole action or create a service-linked role. To read Amazon S3 bucket -// or call SSM:GetDocument. +// pack cannot be created because you do not have the following permissions: +// You do not have permission to call IAM GetRole action or create a service-linked +// role. You do not have permission to read Amazon S3 bucket or call SSM:GetDocument. // // - OrganizationConformancePackTemplateValidationException -// You have specified a template that is not valid or supported. +// You have specified a template that is invalid or supported. // // - OrganizationAllFeaturesNotEnabledException // Config resource cannot be created because your organization does not have @@ -10040,9 +10042,9 @@ func (c *ConfigService) PutRemediationConfigurationsRequest(input *PutRemediatio // a service-linked role. // // - For PutConformancePack and PutOrganizationConformancePack, a conformance -// pack cannot be created because you do not have permissions: To call IAM -// GetRole action or create a service-linked role. To read Amazon S3 bucket -// or call SSM:GetDocument. +// pack cannot be created because you do not have the following permissions: +// You do not have permission to call IAM GetRole action or create a service-linked +// role. You do not have permission to read Amazon S3 bucket or call SSM:GetDocument. // // - InvalidParameterValueException // One or more of the specified parameters are invalid. Verify that your parameters @@ -10148,9 +10150,9 @@ func (c *ConfigService) PutRemediationExceptionsRequest(input *PutRemediationExc // a service-linked role. // // - For PutConformancePack and PutOrganizationConformancePack, a conformance -// pack cannot be created because you do not have permissions: To call IAM -// GetRole action or create a service-linked role. To read Amazon S3 bucket -// or call SSM:GetDocument. +// pack cannot be created because you do not have the following permissions: +// You do not have permission to call IAM GetRole action or create a service-linked +// role. You do not have permission to read Amazon S3 bucket or call SSM:GetDocument. // // See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutRemediationExceptions func (c *ConfigService) PutRemediationExceptions(input *PutRemediationExceptionsInput) (*PutRemediationExceptionsOutput, error) { @@ -10244,7 +10246,7 @@ func (c *ConfigService) PutResourceConfigRequest(input *PutResourceConfigInput) // Returned Error Types: // // - ValidationException -// The requested action is not valid. +// The requested action is invalid. // // For PutStoredQuery, you will see this exception if there are missing required // fields or if the input value fails the validation, or if you are trying to @@ -10268,16 +10270,17 @@ func (c *ConfigService) PutResourceConfigRequest(input *PutResourceConfigInput) // a service-linked role. // // - For PutConformancePack and PutOrganizationConformancePack, a conformance -// pack cannot be created because you do not have permissions: To call IAM -// GetRole action or create a service-linked role. To read Amazon S3 bucket -// or call SSM:GetDocument. +// pack cannot be created because you do not have the following permissions: +// You do not have permission to call IAM GetRole action or create a service-linked +// role. You do not have permission to read Amazon S3 bucket or call SSM:GetDocument. // // - NoRunningConfigurationRecorderException // There is no configuration recorder running. // // - MaxActiveResourcesExceededException -// You have reached the limit (100,000) of active custom resource types in your -// account. Delete unused resources using DeleteResourceConfig. +// You have reached the limit of active custom resource types in your account. +// There is a limit of 100,000. Delete unused resources using DeleteResourceConfig +// (https://docs.aws.amazon.com/config/latest/APIReference/API_DeleteResourceConfig.html) . // // See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutResourceConfig func (c *ConfigService) PutResourceConfig(input *PutResourceConfigInput) (*PutResourceConfigOutput, error) { @@ -10450,7 +10453,7 @@ func (c *ConfigService) PutStoredQueryRequest(input *PutStoredQueryInput) (req * // Returned Error Types: // // - ValidationException -// The requested action is not valid. +// The requested action is invalid. // // For PutStoredQuery, you will see this exception if there are missing required // fields or if the input value fails the validation, or if you are trying to @@ -10461,8 +10464,9 @@ func (c *ConfigService) PutStoredQueryRequest(input *PutStoredQueryInput) (req * // the validation. // // - TooManyTagsException -// You have reached the limit of the number of tags you can use. You have more -// than 50 tags. +// You have reached the limit of the number of tags you can use. For more information, +// see Service Limits (https://docs.aws.amazon.com/config/latest/developerguide/configlimits.html) +// in the Config Developer Guide. // // - ResourceConcurrentModificationException // Two users are trying to modify the same query at the same time. Wait for @@ -10884,7 +10888,7 @@ func (c *ConfigService) StartConfigRulesEvaluationRequest(input *StartConfigRule // Returned Error Types: // // - NoSuchConfigRuleException -// The Config rule in the request is not valid. Verify that the rule is an Config +// The Config rule in the request is invalid. Verify that the rule is an Config // Custom Policy rule, that the rule name is correct, and that valid Amazon // Resouce Names (ARNs) are used before trying again. // @@ -11113,9 +11117,9 @@ func (c *ConfigService) StartRemediationExecutionRequest(input *StartRemediation // a service-linked role. // // - For PutConformancePack and PutOrganizationConformancePack, a conformance -// pack cannot be created because you do not have permissions: To call IAM -// GetRole action or create a service-linked role. To read Amazon S3 bucket -// or call SSM:GetDocument. +// pack cannot be created because you do not have the following permissions: +// You do not have permission to call IAM GetRole action or create a service-linked +// role. You do not have permission to read Amazon S3 bucket or call SSM:GetDocument. // // - NoSuchRemediationConfigurationException // You specified an Config rule without a remediation configuration. @@ -11281,7 +11285,7 @@ func (c *ConfigService) TagResourceRequest(input *TagResourceInput) (req *reques // Returned Error Types: // // - ValidationException -// The requested action is not valid. +// The requested action is invalid. // // For PutStoredQuery, you will see this exception if there are missing required // fields or if the input value fails the validation, or if you are trying to @@ -11295,8 +11299,9 @@ func (c *ConfigService) TagResourceRequest(input *TagResourceInput) (req *reques // You have specified a resource that does not exist. // // - TooManyTagsException -// You have reached the limit of the number of tags you can use. You have more -// than 50 tags. +// You have reached the limit of the number of tags you can use. For more information, +// see Service Limits (https://docs.aws.amazon.com/config/latest/developerguide/configlimits.html) +// in the Config Developer Guide. // // See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/TagResource func (c *ConfigService) TagResource(input *TagResourceInput) (*TagResourceOutput, error) { @@ -11376,7 +11381,7 @@ func (c *ConfigService) UntagResourceRequest(input *UntagResourceInput) (req *re // Returned Error Types: // // - ValidationException -// The requested action is not valid. +// The requested action is invalid. // // For PutStoredQuery, you will see this exception if there are missing required // fields or if the input value fails the validation, or if you are trying to @@ -14222,8 +14227,8 @@ func (s *ConformancePackComplianceFilters) SetConfigRuleNames(v []*string) *Conf // A compliance score is the percentage of the number of compliant rule-resource // combinations in a conformance pack compared to the number of total possible // rule-resource combinations in the conformance pack. This metric provides -// you with a high-level view of the compliance state of your conformance packs, -// and can be used to identify, investigate, and understand the level of compliance +// you with a high-level view of the compliance state of your conformance packs. +// You can use it to identify, investigate, and understand the level of compliance // in your conformance packs. type ConformancePackComplianceScore struct { _ struct{} `type:"structure"` @@ -14890,7 +14895,7 @@ func (s *ConformancePackStatusDetail) SetStackArn(v string) *ConformancePackStat return s } -// You have specified a template that is not valid or supported. +// You have specified a template that is invalid or supported. type ConformancePackTemplateValidationException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -21721,9 +21726,9 @@ func (s *InsufficientDeliveryPolicyException) RequestID() string { // a service-linked role. // // - For PutConformancePack and PutOrganizationConformancePack, a conformance -// pack cannot be created because you do not have permissions: To call IAM -// GetRole action or create a service-linked role. To read Amazon S3 bucket -// or call SSM:GetDocument. +// pack cannot be created because you do not have the following permissions: +// You do not have permission to call IAM GetRole action or create a service-linked +// role. You do not have permission to read Amazon S3 bucket or call SSM:GetDocument. type InsufficientPermissionsException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -21851,7 +21856,7 @@ func (s *InvalidConfigurationRecorderNameException) RequestID() string { return s.RespMetadata.RequestID } -// The specified delivery channel name is not valid. +// The specified delivery channel name is invalid. type InvalidDeliveryChannelNameException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -22366,7 +22371,7 @@ func (s *InvalidRoleException) RequestID() string { return s.RespMetadata.RequestID } -// The specified Amazon S3 key prefix is not valid. +// The specified Amazon S3 key prefix is invalid. type InvalidS3KeyPrefixException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -22430,7 +22435,7 @@ func (s *InvalidS3KeyPrefixException) RequestID() string { return s.RespMetadata.RequestID } -// The specified Amazon KMS Key ARN is not valid. +// The specified Amazon KMS Key ARN is invalid. type InvalidS3KmsKeyArnException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -22558,7 +22563,7 @@ func (s *InvalidSNSTopicARNException) RequestID() string { return s.RespMetadata.RequestID } -// The specified time range is not valid. The earlier time is not chronologically +// The specified time range is invalid. The earlier time is not chronologically // before the later time. type InvalidTimeRangeException struct { _ struct{} `type:"structure"` @@ -22912,16 +22917,23 @@ type ListConformancePackComplianceScoresInput struct { // Sorts your conformance pack compliance scores in either ascending or descending // order, depending on SortOrder. // - // By default, conformance pack compliance scores are sorted in ascending order - // by compliance score and alphabetically by name of the conformance pack if - // there is more than one conformance pack with the same compliance score. + // By default, conformance pack compliance scores are sorted in alphabetical + // order by name of the conformance pack. Enter SCORE, to sort conformance pack + // compliance scores by the numerical value of the compliance score. SortBy *string `type:"string" enum:"SortBy"` // Determines the order in which conformance pack compliance scores are sorted. // Either in ascending or descending order. // - // Conformance packs with a compliance score of INSUFFICIENT_DATA will be first - // when sorting by ascending order and last when sorting by descending order. + // By default, conformance pack compliance scores are sorted in alphabetical + // order by name of the conformance pack. Conformance pack compliance scores + // are sorted in reverse alphabetical order if you enter DESCENDING. + // + // You can sort conformance pack compliance scores by the numerical value of + // the compliance score by entering SCORE in the SortBy action. When compliance + // scores are sorted by SCORE, conformance packs with a compliance score of + // INSUFFICIENT_DATA will be last when sorting by ascending order and first + // when sorting by descending order. SortOrder *string `type:"string" enum:"SortOrder"` } @@ -23370,8 +23382,9 @@ func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput return s } -// You have reached the limit (100,000) of active custom resource types in your -// account. Delete unused resources using DeleteResourceConfig. +// You have reached the limit of active custom resource types in your account. +// There is a limit of 100,000. Delete unused resources using DeleteResourceConfig +// (https://docs.aws.amazon.com/config/latest/APIReference/API_DeleteResourceConfig.html) . type MaxActiveResourcesExceededException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -23565,8 +23578,9 @@ func (s *MaxNumberOfConfigurationRecordersExceededException) RequestID() string return s.RespMetadata.RequestID } -// You have reached the limit (6) of the number of conformance packs in an account -// (6 conformance pack with 25 Config rules per pack). +// You have reached the limit of the number of conformance packs you can create +// in an account. For more information, see Service Limits (https://docs.aws.amazon.com/config/latest/developerguide/configlimits.html) +// in the Config Developer Guide. type MaxNumberOfConformancePacksExceededException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -23695,7 +23709,8 @@ func (s *MaxNumberOfDeliveryChannelsExceededException) RequestID() string { } // You have reached the limit of the number of organization Config rules you -// can create. +// can create. For more information, see see Service Limits (https://docs.aws.amazon.com/config/latest/developerguide/configlimits.html) +// in the Config Developer Guide. type MaxNumberOfOrganizationConfigRulesExceededException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -23759,9 +23774,9 @@ func (s *MaxNumberOfOrganizationConfigRulesExceededException) RequestID() string return s.RespMetadata.RequestID } -// You have reached the limit (6) of the number of organization conformance -// packs in an account (6 conformance pack with 25 Config rules per pack per -// account). +// You have reached the limit of the number of organization conformance packs +// you can create in an account. For more information, see Service Limits (https://docs.aws.amazon.com/config/latest/developerguide/configlimits.html) +// in the Config Developer Guide. type MaxNumberOfOrganizationConformancePacksExceededException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -23917,12 +23932,13 @@ type MemberAccountStatus struct { // The timestamp of the last status update. LastUpdateTime *time.Time `type:"timestamp"` - // Indicates deployment status for Config rule in the member account. When master + // Indicates deployment status for Config rule in the member account. When management // account calls PutOrganizationConfigRule action for the first time, Config - // rule status is created in the member account. When master account calls PutOrganizationConfigRule - // action for the second time, Config rule status is updated in the member account. - // Config rule status is deleted when the master account deletes OrganizationConfigRule - // and disables service access for config-multiaccountsetup.amazonaws.com. + // rule status is created in the member account. When management account calls + // PutOrganizationConfigRule action for the second time, Config rule status + // is updated in the member account. Config rule status is deleted when the + // management account deletes OrganizationConfigRule and disables service access + // for config-multiaccountsetup.amazonaws.com. // // Config sets the state of the rule to: // @@ -24323,7 +24339,7 @@ func (s *NoSuchBucketException) RequestID() string { return s.RespMetadata.RequestID } -// The Config rule in the request is not valid. Verify that the rule is an Config +// The Config rule in the request is invalid. Verify that the rule is an Config // Custom Policy rule, that the rule name is correct, and that valid Amazon // Resouce Names (ARNs) are used before trying again. type NoSuchConfigRuleException struct { @@ -24709,7 +24725,7 @@ func (s *NoSuchDeliveryChannelException) RequestID() string { return s.RespMetadata.RequestID } -// The Config rule in the request is not valid. Verify that the rule is an organization +// The Config rule in the request is invalid. Verify that the rule is an organization // Config Custom Policy rule, that the rule name is correct, and that valid // Amazon Resouce Names (ARNs) are used before trying again. type NoSuchOrganizationConfigRuleException struct { @@ -25057,7 +25073,7 @@ func (s *NoSuchRetentionConfigurationException) RequestID() string { // // For all OrganizationConfigRule and OrganizationConformancePack APIs, Config // throws an exception if APIs are called from member accounts. All APIs must -// be called from organization master account. +// be called from organization management account. type OrganizationAccessDeniedException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -25372,14 +25388,14 @@ type OrganizationConfigRuleStatus struct { // OrganizationConfigRuleName is a required field OrganizationConfigRuleName *string `min:"1" type:"string" required:"true"` - // Indicates deployment status of an organization Config rule. When master account - // calls PutOrganizationConfigRule action for the first time, Config rule status - // is created in all the member accounts. When master account calls PutOrganizationConfigRule - // action for the second time, Config rule status is updated in all the member - // accounts. Additionally, Config rule status is updated when one or more member - // accounts join or leave an organization. Config rule status is deleted when - // the master account deletes OrganizationConfigRule in all the member accounts - // and disables service access for config-multiaccountsetup.amazonaws.com. + // Indicates deployment status of an organization Config rule. When management + // account calls PutOrganizationConfigRule action for the first time, Config + // rule status is created in all the member accounts. When management account + // calls PutOrganizationConfigRule action for the second time, Config rule status + // is updated in all the member accounts. Additionally, Config rule status is + // updated when one or more member accounts join or leave an organization. Config + // rule status is deleted when the management account deletes OrganizationConfigRule + // in all the member accounts and disables service access for config-multiaccountsetup.amazonaws.com. // // Config sets the state of the rule to: // @@ -25585,11 +25601,11 @@ type OrganizationConformancePackDetailedStatus struct { LastUpdateTime *time.Time `type:"timestamp"` // Indicates deployment status for conformance pack in a member account. When - // master account calls PutOrganizationConformancePack action for the first - // time, conformance pack status is created in the member account. When master + // management account calls PutOrganizationConformancePack action for the first + // time, conformance pack status is created in the member account. When management // account calls PutOrganizationConformancePack action for the second time, // conformance pack status is updated in the member account. Conformance pack - // status is deleted when the master account deletes OrganizationConformancePack + // status is deleted when the management account deletes OrganizationConformancePack // and disables service access for config-multiaccountsetup.amazonaws.com. // // Config sets the state of the conformance pack to: @@ -25699,13 +25715,13 @@ type OrganizationConformancePackStatus struct { // OrganizationConformancePackName is a required field OrganizationConformancePackName *string `min:"1" type:"string" required:"true"` - // Indicates deployment status of an organization conformance pack. When master + // Indicates deployment status of an organization conformance pack. When management // account calls PutOrganizationConformancePack for the first time, conformance - // pack status is created in all the member accounts. When master account calls - // PutOrganizationConformancePack for the second time, conformance pack status - // is updated in all the member accounts. Additionally, conformance pack status - // is updated when one or more member accounts join or leave an organization. - // Conformance pack status is deleted when the master account deletes OrganizationConformancePack + // pack status is created in all the member accounts. When management account + // calls PutOrganizationConformancePack for the second time, conformance pack + // status is updated in all the member accounts. Additionally, conformance pack + // status is updated when one or more member accounts join or leave an organization. + // Conformance pack status is deleted when the management account deletes OrganizationConformancePack // in all the member accounts and disables service access for config-multiaccountsetup.amazonaws.com. // // Config sets the state of the conformance pack to: @@ -25789,7 +25805,7 @@ func (s *OrganizationConformancePackStatus) SetStatus(v string) *OrganizationCon return s } -// You have specified a template that is not valid or supported. +// You have specified a template that is invalid or supported. type OrganizationConformancePackTemplateValidationException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -26486,11 +26502,11 @@ type OrganizationResourceDetailedStatusFilters struct { AccountId *string `type:"string"` // Indicates deployment status for conformance pack in a member account. When - // master account calls PutOrganizationConformancePack action for the first - // time, conformance pack status is created in the member account. When master + // management account calls PutOrganizationConformancePack action for the first + // time, conformance pack status is created in the member account. When management // account calls PutOrganizationConformancePack action for the second time, // conformance pack status is updated in the member account. Conformance pack - // status is deleted when the master account deletes OrganizationConformancePack + // status is deleted when the management account deletes OrganizationConformancePack // and disables service access for config-multiaccountsetup.amazonaws.com. // // Config sets the state of the conformance pack to: @@ -27097,13 +27113,13 @@ type PutConformancePackInput struct { // containing the template body has a minimum length of 1 byte and a maximum // length of 51,200 bytes. // - // You can only use a YAML template with two resource types: Config rule (AWS::Config::ConfigRule) + // You can use a YAML template with two resource types: Config rule (AWS::Config::ConfigRule) // and remediation action (AWS::Config::RemediationConfiguration). TemplateBody *string `min:"1" type:"string"` // The location of the file containing the template body (s3://bucketname/prefix). // The uri must point to a conformance pack template (max size: 300 KB) that - // is located in an Amazon S3 bucket in the same region as the conformance pack. + // is located in an Amazon S3 bucket in the same Region as the conformance pack. // // You must have access to read Amazon S3 bucket. TemplateS3Uri *string `min:"1" type:"string"` @@ -30790,12 +30806,13 @@ type StatusDetailFilters struct { // The 12-digit account ID of the member account within an organization. AccountId *string `type:"string"` - // Indicates deployment status for Config rule in the member account. When master + // Indicates deployment status for Config rule in the member account. When management // account calls PutOrganizationConfigRule action for the first time, Config - // rule status is created in the member account. When master account calls PutOrganizationConfigRule - // action for the second time, Config rule status is updated in the member account. - // Config rule status is deleted when the master account deletes OrganizationConfigRule - // and disables service access for config-multiaccountsetup.amazonaws.com. + // rule status is created in the member account. When management account calls + // PutOrganizationConfigRule action for the second time, Config rule status + // is updated in the member account. Config rule status is deleted when the + // management account deletes OrganizationConfigRule and disables service access + // for config-multiaccountsetup.amazonaws.com. // // Config sets the state of the rule to: // @@ -31246,9 +31263,10 @@ func (s TagResourceOutput) GoString() string { // This API allows you to create a conformance pack template with an Amazon // Web Services Systems Manager document (SSM document). To deploy a conformance -// pack using an SSM document, you first create an SSM document with conformance -// pack content, and then provide the DocumentName (and optionally DocumentVersion) -// in the PutConformancePack API (https://docs.aws.amazon.com/config/latest/APIReference/API_PutConformancePack.html). +// pack using an SSM document, first create an SSM document with conformance +// pack content, and then provide the DocumentName in the PutConformancePack +// API (https://docs.aws.amazon.com/config/latest/APIReference/API_PutConformancePack.html). +// You can also provide the DocumentVersion. // // The TemplateSSMDocumentDetails object contains the name of the SSM document // and the version of the SSM document. @@ -31256,9 +31274,10 @@ type TemplateSSMDocumentDetails struct { _ struct{} `type:"structure"` // The name or Amazon Resource Name (ARN) of the SSM document to use to create - // a conformance pack. If you use the Document Name, Config checks only your - // account and region for the SSM document. If you want to use an SSM document - // from another region or account, you must provide the ARN. + // a conformance pack. If you use the document name, Config checks only your + // account and Amazon Web Services Region for the SSM document. If you want + // to use an SSM document from another Region or account, you must provide the + // ARN. // // DocumentName is a required field DocumentName *string `type:"string" required:"true"` @@ -31313,8 +31332,9 @@ func (s *TemplateSSMDocumentDetails) SetDocumentVersion(v string) *TemplateSSMDo return s } -// You have reached the limit of the number of tags you can use. You have more -// than 50 tags. +// You have reached the limit of the number of tags you can use. For more information, +// see Service Limits (https://docs.aws.amazon.com/config/latest/developerguide/configlimits.html) +// in the Config Developer Guide. type TooManyTagsException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -31468,7 +31488,7 @@ func (s UntagResourceOutput) GoString() string { return s.String() } -// The requested action is not valid. +// The requested action is invalid. // // For PutStoredQuery, you will see this exception if there are missing required // fields or if the input value fails the validation, or if you are trying to @@ -32592,6 +32612,66 @@ const ( // ResourceTypeAwsDmsCertificate is a ResourceType enum value ResourceTypeAwsDmsCertificate = "AWS::DMS::Certificate" + + // ResourceTypeAwsAppConfigApplication is a ResourceType enum value + ResourceTypeAwsAppConfigApplication = "AWS::AppConfig::Application" + + // ResourceTypeAwsAppSyncGraphQlapi is a ResourceType enum value + ResourceTypeAwsAppSyncGraphQlapi = "AWS::AppSync::GraphQLApi" + + // ResourceTypeAwsDataSyncLocationSmb is a ResourceType enum value + ResourceTypeAwsDataSyncLocationSmb = "AWS::DataSync::LocationSMB" + + // ResourceTypeAwsDataSyncLocationFsxLustre is a ResourceType enum value + ResourceTypeAwsDataSyncLocationFsxLustre = "AWS::DataSync::LocationFSxLustre" + + // ResourceTypeAwsDataSyncLocationS3 is a ResourceType enum value + ResourceTypeAwsDataSyncLocationS3 = "AWS::DataSync::LocationS3" + + // ResourceTypeAwsDataSyncLocationEfs is a ResourceType enum value + ResourceTypeAwsDataSyncLocationEfs = "AWS::DataSync::LocationEFS" + + // ResourceTypeAwsDataSyncTask is a ResourceType enum value + ResourceTypeAwsDataSyncTask = "AWS::DataSync::Task" + + // ResourceTypeAwsDataSyncLocationNfs is a ResourceType enum value + ResourceTypeAwsDataSyncLocationNfs = "AWS::DataSync::LocationNFS" + + // ResourceTypeAwsEc2NetworkInsightsAccessScopeAnalysis is a ResourceType enum value + ResourceTypeAwsEc2NetworkInsightsAccessScopeAnalysis = "AWS::EC2::NetworkInsightsAccessScopeAnalysis" + + // ResourceTypeAwsEksFargateProfile is a ResourceType enum value + ResourceTypeAwsEksFargateProfile = "AWS::EKS::FargateProfile" + + // ResourceTypeAwsGlueJob is a ResourceType enum value + ResourceTypeAwsGlueJob = "AWS::Glue::Job" + + // ResourceTypeAwsGuardDutyThreatIntelSet is a ResourceType enum value + ResourceTypeAwsGuardDutyThreatIntelSet = "AWS::GuardDuty::ThreatIntelSet" + + // ResourceTypeAwsGuardDutyIpset is a ResourceType enum value + ResourceTypeAwsGuardDutyIpset = "AWS::GuardDuty::IPSet" + + // ResourceTypeAwsSageMakerWorkteam is a ResourceType enum value + ResourceTypeAwsSageMakerWorkteam = "AWS::SageMaker::Workteam" + + // ResourceTypeAwsSageMakerNotebookInstanceLifecycleConfig is a ResourceType enum value + ResourceTypeAwsSageMakerNotebookInstanceLifecycleConfig = "AWS::SageMaker::NotebookInstanceLifecycleConfig" + + // ResourceTypeAwsServiceDiscoveryService is a ResourceType enum value + ResourceTypeAwsServiceDiscoveryService = "AWS::ServiceDiscovery::Service" + + // ResourceTypeAwsServiceDiscoveryPublicDnsNamespace is a ResourceType enum value + ResourceTypeAwsServiceDiscoveryPublicDnsNamespace = "AWS::ServiceDiscovery::PublicDnsNamespace" + + // ResourceTypeAwsSesContactList is a ResourceType enum value + ResourceTypeAwsSesContactList = "AWS::SES::ContactList" + + // ResourceTypeAwsSesConfigurationSet is a ResourceType enum value + ResourceTypeAwsSesConfigurationSet = "AWS::SES::ConfigurationSet" + + // ResourceTypeAwsRoute53HostedZone is a ResourceType enum value + ResourceTypeAwsRoute53HostedZone = "AWS::Route53::HostedZone" ) // ResourceType_Values returns all elements of the ResourceType enum @@ -32741,6 +32821,26 @@ func ResourceType_Values() []string { ResourceTypeAwsEc2TransitGatewayAttachment, ResourceTypeAwsEc2TransitGatewayRouteTable, ResourceTypeAwsDmsCertificate, + ResourceTypeAwsAppConfigApplication, + ResourceTypeAwsAppSyncGraphQlapi, + ResourceTypeAwsDataSyncLocationSmb, + ResourceTypeAwsDataSyncLocationFsxLustre, + ResourceTypeAwsDataSyncLocationS3, + ResourceTypeAwsDataSyncLocationEfs, + ResourceTypeAwsDataSyncTask, + ResourceTypeAwsDataSyncLocationNfs, + ResourceTypeAwsEc2NetworkInsightsAccessScopeAnalysis, + ResourceTypeAwsEksFargateProfile, + ResourceTypeAwsGlueJob, + ResourceTypeAwsGuardDutyThreatIntelSet, + ResourceTypeAwsGuardDutyIpset, + ResourceTypeAwsSageMakerWorkteam, + ResourceTypeAwsSageMakerNotebookInstanceLifecycleConfig, + ResourceTypeAwsServiceDiscoveryService, + ResourceTypeAwsServiceDiscoveryPublicDnsNamespace, + ResourceTypeAwsSesContactList, + ResourceTypeAwsSesConfigurationSet, + ResourceTypeAwsRoute53HostedZone, } } diff --git a/service/configservice/errors.go b/service/configservice/errors.go index 7946667089..234ff45960 100644 --- a/service/configservice/errors.go +++ b/service/configservice/errors.go @@ -11,7 +11,7 @@ const ( // ErrCodeConformancePackTemplateValidationException for service response error code // "ConformancePackTemplateValidationException". // - // You have specified a template that is not valid or supported. + // You have specified a template that is invalid or supported. ErrCodeConformancePackTemplateValidationException = "ConformancePackTemplateValidationException" // ErrCodeInsufficientDeliveryPolicyException for service response error code @@ -36,9 +36,9 @@ const ( // a service-linked role. // // * For PutConformancePack and PutOrganizationConformancePack, a conformance - // pack cannot be created because you do not have permissions: To call IAM - // GetRole action or create a service-linked role. To read Amazon S3 bucket - // or call SSM:GetDocument. + // pack cannot be created because you do not have the following permissions: + // You do not have permission to call IAM GetRole action or create a service-linked + // role. You do not have permission to read Amazon S3 bucket or call SSM:GetDocument. ErrCodeInsufficientPermissionsException = "InsufficientPermissionsException" // ErrCodeInvalidConfigurationRecorderNameException for service response error code @@ -50,7 +50,7 @@ const ( // ErrCodeInvalidDeliveryChannelNameException for service response error code // "InvalidDeliveryChannelNameException". // - // The specified delivery channel name is not valid. + // The specified delivery channel name is invalid. ErrCodeInvalidDeliveryChannelNameException = "InvalidDeliveryChannelNameException" // ErrCodeInvalidExpressionException for service response error code @@ -101,13 +101,13 @@ const ( // ErrCodeInvalidS3KeyPrefixException for service response error code // "InvalidS3KeyPrefixException". // - // The specified Amazon S3 key prefix is not valid. + // The specified Amazon S3 key prefix is invalid. ErrCodeInvalidS3KeyPrefixException = "InvalidS3KeyPrefixException" // ErrCodeInvalidS3KmsKeyArnException for service response error code // "InvalidS3KmsKeyArnException". // - // The specified Amazon KMS Key ARN is not valid. + // The specified Amazon KMS Key ARN is invalid. ErrCodeInvalidS3KmsKeyArnException = "InvalidS3KmsKeyArnException" // ErrCodeInvalidSNSTopicARNException for service response error code @@ -119,7 +119,7 @@ const ( // ErrCodeInvalidTimeRangeException for service response error code // "InvalidTimeRangeException". // - // The specified time range is not valid. The earlier time is not chronologically + // The specified time range is invalid. The earlier time is not chronologically // before the later time. ErrCodeInvalidTimeRangeException = "InvalidTimeRangeException" @@ -144,8 +144,9 @@ const ( // ErrCodeMaxActiveResourcesExceededException for service response error code // "MaxActiveResourcesExceededException". // - // You have reached the limit (100,000) of active custom resource types in your - // account. Delete unused resources using DeleteResourceConfig. + // You have reached the limit of active custom resource types in your account. + // There is a limit of 100,000. Delete unused resources using DeleteResourceConfig + // (https://docs.aws.amazon.com/config/latest/APIReference/API_DeleteResourceConfig.html) . ErrCodeMaxActiveResourcesExceededException = "MaxActiveResourcesExceededException" // ErrCodeMaxNumberOfConfigRulesExceededException for service response error code @@ -165,8 +166,9 @@ const ( // ErrCodeMaxNumberOfConformancePacksExceededException for service response error code // "MaxNumberOfConformancePacksExceededException". // - // You have reached the limit (6) of the number of conformance packs in an account - // (6 conformance pack with 25 Config rules per pack). + // You have reached the limit of the number of conformance packs you can create + // in an account. For more information, see Service Limits (https://docs.aws.amazon.com/config/latest/developerguide/configlimits.html) + // in the Config Developer Guide. ErrCodeMaxNumberOfConformancePacksExceededException = "MaxNumberOfConformancePacksExceededException" // ErrCodeMaxNumberOfDeliveryChannelsExceededException for service response error code @@ -179,15 +181,16 @@ const ( // "MaxNumberOfOrganizationConfigRulesExceededException". // // You have reached the limit of the number of organization Config rules you - // can create. + // can create. For more information, see see Service Limits (https://docs.aws.amazon.com/config/latest/developerguide/configlimits.html) + // in the Config Developer Guide. ErrCodeMaxNumberOfOrganizationConfigRulesExceededException = "MaxNumberOfOrganizationConfigRulesExceededException" // ErrCodeMaxNumberOfOrganizationConformancePacksExceededException for service response error code // "MaxNumberOfOrganizationConformancePacksExceededException". // - // You have reached the limit (6) of the number of organization conformance - // packs in an account (6 conformance pack with 25 Config rules per pack per - // account). + // You have reached the limit of the number of organization conformance packs + // you can create in an account. For more information, see Service Limits (https://docs.aws.amazon.com/config/latest/developerguide/configlimits.html) + // in the Config Developer Guide. ErrCodeMaxNumberOfOrganizationConformancePacksExceededException = "MaxNumberOfOrganizationConformancePacksExceededException" // ErrCodeMaxNumberOfRetentionConfigurationsExceededException for service response error code @@ -231,7 +234,7 @@ const ( // ErrCodeNoSuchConfigRuleException for service response error code // "NoSuchConfigRuleException". // - // The Config rule in the request is not valid. Verify that the rule is an Config + // The Config rule in the request is invalid. Verify that the rule is an Config // Custom Policy rule, that the rule name is correct, and that valid Amazon // Resouce Names (ARNs) are used before trying again. ErrCodeNoSuchConfigRuleException = "NoSuchConfigRuleException" @@ -269,7 +272,7 @@ const ( // ErrCodeNoSuchOrganizationConfigRuleException for service response error code // "NoSuchOrganizationConfigRuleException". // - // The Config rule in the request is not valid. Verify that the rule is an organization + // The Config rule in the request is invalid. Verify that the rule is an organization // Config Custom Policy rule, that the rule name is correct, and that valid // Amazon Resouce Names (ARNs) are used before trying again. ErrCodeNoSuchOrganizationConfigRuleException = "NoSuchOrganizationConfigRuleException" @@ -327,7 +330,7 @@ const ( // // For all OrganizationConfigRule and OrganizationConformancePack APIs, Config // throws an exception if APIs are called from member accounts. All APIs must - // be called from organization master account. + // be called from organization management account. ErrCodeOrganizationAccessDeniedException = "OrganizationAccessDeniedException" // ErrCodeOrganizationAllFeaturesNotEnabledException for service response error code @@ -340,7 +343,7 @@ const ( // ErrCodeOrganizationConformancePackTemplateValidationException for service response error code // "OrganizationConformancePackTemplateValidationException". // - // You have specified a template that is not valid or supported. + // You have specified a template that is invalid or supported. ErrCodeOrganizationConformancePackTemplateValidationException = "OrganizationConformancePackTemplateValidationException" // ErrCodeOversizedConfigurationItemException for service response error code @@ -407,14 +410,15 @@ const ( // ErrCodeTooManyTagsException for service response error code // "TooManyTagsException". // - // You have reached the limit of the number of tags you can use. You have more - // than 50 tags. + // You have reached the limit of the number of tags you can use. For more information, + // see Service Limits (https://docs.aws.amazon.com/config/latest/developerguide/configlimits.html) + // in the Config Developer Guide. ErrCodeTooManyTagsException = "TooManyTagsException" // ErrCodeValidationException for service response error code // "ValidationException". // - // The requested action is not valid. + // The requested action is invalid. // // For PutStoredQuery, you will see this exception if there are missing required // fields or if the input value fails the validation, or if you are trying to diff --git a/service/connect/api.go b/service/connect/api.go index 3bee7f7fee..93d2c76bf8 100644 --- a/service/connect/api.go +++ b/service/connect/api.go @@ -659,6 +659,15 @@ func (c *Connect) AssociatePhoneNumberContactFlowRequest(input *AssociatePhoneNu // // Associates a flow with a phone number claimed to your Amazon Connect instance. // +// If the number is claimed to a traffic distribution group, and you are calling +// this API using an instance in the Amazon Web Services Region where the traffic +// distribution group was created, you can use either a full phone number ARN +// or UUID value for the PhoneNumberId URI request parameter. However, if the +// number is claimed to a traffic distribution group and you are calling this +// API using an instance in the alternate Amazon Web Services Region associated +// with the traffic distribution group, you must provide a full phone number +// ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException. +// // 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. @@ -1036,7 +1045,14 @@ func (c *Connect) ClaimPhoneNumberRequest(input *ClaimPhoneNumberInput) (req *re // ClaimPhoneNumber API operation for Amazon Connect Service. // -// Claims an available phone number to your Amazon Connect instance. +// Claims an available phone number to your Amazon Connect instance or traffic +// distribution group. You can call this API only in the same Amazon Web Services +// Region where the Amazon Connect instance or traffic distribution group was +// created. +// +// You can call the DescribePhoneNumber (https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribePhoneNumber.html) +// API to verify the status of a previous ClaimPhoneNumber (https://docs.aws.amazon.com/connect/latest/APIReference/API_ClaimPhoneNumber.html) +// operation. // // 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 @@ -1735,6 +1751,17 @@ func (c *Connect) CreateQueueRequest(input *CreateQueueInput) (req *request.Requ // // Creates a new queue for the specified Amazon Connect instance. // +// If the number being used in the input is claimed to a traffic distribution +// group, and you are calling this API using an instance in the Amazon Web Services +// Region where the traffic distribution group was created, you can use either +// a full phone number ARN or UUID value for the OutboundCallerIdNumberId value +// of the OutboundCallerConfig (https://docs.aws.amazon.com/connect/latest/APIReference/API_OutboundCallerConfig) +// request body parameter. However, if the number is claimed to a traffic distribution +// group and you are calling this API using an instance in the alternate Amazon +// Web Services Region associated with the traffic distribution group, you must +// provide a full phone number ARN. If a UUID is provided in this scenario, +// you will receive a ResourceNotFoundException. +// // 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. @@ -2174,6 +2201,111 @@ func (c *Connect) CreateTaskTemplateWithContext(ctx aws.Context, input *CreateTa return out, req.Send() } +const opCreateTrafficDistributionGroup = "CreateTrafficDistributionGroup" + +// CreateTrafficDistributionGroupRequest generates a "aws/request.Request" representing the +// client's request for the CreateTrafficDistributionGroup 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 CreateTrafficDistributionGroup for more information on using the CreateTrafficDistributionGroup +// 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 CreateTrafficDistributionGroupRequest method. +// req, resp := client.CreateTrafficDistributionGroupRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/CreateTrafficDistributionGroup +func (c *Connect) CreateTrafficDistributionGroupRequest(input *CreateTrafficDistributionGroupInput) (req *request.Request, output *CreateTrafficDistributionGroupOutput) { + op := &request.Operation{ + Name: opCreateTrafficDistributionGroup, + HTTPMethod: "PUT", + HTTPPath: "/traffic-distribution-group", + } + + if input == nil { + input = &CreateTrafficDistributionGroupInput{} + } + + output = &CreateTrafficDistributionGroupOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateTrafficDistributionGroup API operation for Amazon Connect Service. +// +// Creates a traffic distribution group given an Amazon Connect instance that +// has been replicated. +// +// For more information about creating traffic distribution groups, see Set +// up traffic distribution groups (https://docs.aws.amazon.com/connect/latest/adminguide/setup-traffic-distribution-groups.html) +// in the Amazon Connect Administrator 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 +// the error. +// +// See the AWS API reference guide for Amazon Connect Service's +// API operation CreateTrafficDistributionGroup for usage and error information. +// +// Returned Error Types: +// +// - InvalidRequestException +// The request is not valid. +// +// - AccessDeniedException +// You do not have sufficient permissions to perform this action. +// +// - ServiceQuotaExceededException +// The service quota has been exceeded. +// +// - ThrottlingException +// The throttling limit has been exceeded. +// +// - ResourceNotFoundException +// The specified resource was not found. +// +// - InternalServiceException +// Request processing failed because of an error or failure with the service. +// +// - ResourceConflictException +// A resource already has that name. +// +// - ResourceNotReadyException +// The resource is not ready. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/CreateTrafficDistributionGroup +func (c *Connect) CreateTrafficDistributionGroup(input *CreateTrafficDistributionGroupInput) (*CreateTrafficDistributionGroupOutput, error) { + req, out := c.CreateTrafficDistributionGroupRequest(input) + return out, req.Send() +} + +// CreateTrafficDistributionGroupWithContext is the same as CreateTrafficDistributionGroup with the addition of +// the ability to pass a context and additional request options. +// +// See CreateTrafficDistributionGroup 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 *Connect) CreateTrafficDistributionGroupWithContext(ctx aws.Context, input *CreateTrafficDistributionGroupInput, opts ...request.Option) (*CreateTrafficDistributionGroupOutput, error) { + req, out := c.CreateTrafficDistributionGroupRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCreateUseCase = "CreateUseCase" // CreateUseCaseRequest generates a "aws/request.Request" representing the @@ -3315,6 +3447,103 @@ func (c *Connect) DeleteTaskTemplateWithContext(ctx aws.Context, input *DeleteTa return out, req.Send() } +const opDeleteTrafficDistributionGroup = "DeleteTrafficDistributionGroup" + +// DeleteTrafficDistributionGroupRequest generates a "aws/request.Request" representing the +// client's request for the DeleteTrafficDistributionGroup 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 DeleteTrafficDistributionGroup for more information on using the DeleteTrafficDistributionGroup +// 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 DeleteTrafficDistributionGroupRequest method. +// req, resp := client.DeleteTrafficDistributionGroupRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/DeleteTrafficDistributionGroup +func (c *Connect) DeleteTrafficDistributionGroupRequest(input *DeleteTrafficDistributionGroupInput) (req *request.Request, output *DeleteTrafficDistributionGroupOutput) { + op := &request.Operation{ + Name: opDeleteTrafficDistributionGroup, + HTTPMethod: "DELETE", + HTTPPath: "/traffic-distribution-group/{TrafficDistributionGroupId}", + } + + if input == nil { + input = &DeleteTrafficDistributionGroupInput{} + } + + output = &DeleteTrafficDistributionGroupOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteTrafficDistributionGroup API operation for Amazon Connect Service. +// +// Deletes a traffic distribution group. This API can be called only in the +// Region where the traffic distribution group is created. +// +// For more information about deleting traffic distribution groups, see Delete +// traffic distribution groups (https://docs.aws.amazon.com/connect/latest/adminguide/delete-traffic-distribution-groups.html) +// in the Amazon Connect Administrator 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 +// the error. +// +// See the AWS API reference guide for Amazon Connect Service's +// API operation DeleteTrafficDistributionGroup for usage and error information. +// +// Returned Error Types: +// +// - InvalidRequestException +// The request is not valid. +// +// - AccessDeniedException +// You do not have sufficient permissions to perform this action. +// +// - ResourceInUseException +// That resource is already in use. Please try another. +// +// - ThrottlingException +// The throttling limit has been exceeded. +// +// - InternalServiceException +// Request processing failed because of an error or failure with the service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/DeleteTrafficDistributionGroup +func (c *Connect) DeleteTrafficDistributionGroup(input *DeleteTrafficDistributionGroupInput) (*DeleteTrafficDistributionGroupOutput, error) { + req, out := c.DeleteTrafficDistributionGroupRequest(input) + return out, req.Send() +} + +// DeleteTrafficDistributionGroupWithContext is the same as DeleteTrafficDistributionGroup with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteTrafficDistributionGroup 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 *Connect) DeleteTrafficDistributionGroupWithContext(ctx aws.Context, input *DeleteTrafficDistributionGroupInput, opts ...request.Option) (*DeleteTrafficDistributionGroupOutput, error) { + req, out := c.DeleteTrafficDistributionGroupRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteUseCase = "DeleteUseCase" // DeleteUseCaseRequest generates a "aws/request.Request" representing the @@ -4488,7 +4717,15 @@ func (c *Connect) DescribePhoneNumberRequest(input *DescribePhoneNumberInput) (r // DescribePhoneNumber API operation for Amazon Connect Service. // // Gets details and status of a phone number that’s claimed to your Amazon -// Connect instance +// Connect instance or traffic distribution group. +// +// If the number is claimed to a traffic distribution group, and you are calling +// in the Amazon Web Services Region where the traffic distribution group was +// created, you can use either a phone number ARN or UUID value for the PhoneNumberId +// URI request parameter. However, if the number is claimed to a traffic distribution +// group and you are calling this API in the alternate Amazon Web Services Region +// associated with the traffic distribution group, you must provide a full phone +// number ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException. // // 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 @@ -4904,6 +5141,97 @@ func (c *Connect) DescribeSecurityProfileWithContext(ctx aws.Context, input *Des return out, req.Send() } +const opDescribeTrafficDistributionGroup = "DescribeTrafficDistributionGroup" + +// DescribeTrafficDistributionGroupRequest generates a "aws/request.Request" representing the +// client's request for the DescribeTrafficDistributionGroup 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 DescribeTrafficDistributionGroup for more information on using the DescribeTrafficDistributionGroup +// 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 DescribeTrafficDistributionGroupRequest method. +// req, resp := client.DescribeTrafficDistributionGroupRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/DescribeTrafficDistributionGroup +func (c *Connect) DescribeTrafficDistributionGroupRequest(input *DescribeTrafficDistributionGroupInput) (req *request.Request, output *DescribeTrafficDistributionGroupOutput) { + op := &request.Operation{ + Name: opDescribeTrafficDistributionGroup, + HTTPMethod: "GET", + HTTPPath: "/traffic-distribution-group/{TrafficDistributionGroupId}", + } + + if input == nil { + input = &DescribeTrafficDistributionGroupInput{} + } + + output = &DescribeTrafficDistributionGroupOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeTrafficDistributionGroup API operation for Amazon Connect Service. +// +// Gets details and status of a traffic distribution group. +// +// 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 Connect Service's +// API operation DescribeTrafficDistributionGroup for usage and error information. +// +// Returned Error Types: +// +// - InvalidRequestException +// The request is not valid. +// +// - AccessDeniedException +// You do not have sufficient permissions to perform this action. +// +// - ResourceNotFoundException +// The specified resource was not found. +// +// - InternalServiceException +// Request processing failed because of an error or failure with the service. +// +// - ThrottlingException +// The throttling limit has been exceeded. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/DescribeTrafficDistributionGroup +func (c *Connect) DescribeTrafficDistributionGroup(input *DescribeTrafficDistributionGroupInput) (*DescribeTrafficDistributionGroupOutput, error) { + req, out := c.DescribeTrafficDistributionGroupRequest(input) + return out, req.Send() +} + +// DescribeTrafficDistributionGroupWithContext is the same as DescribeTrafficDistributionGroup with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeTrafficDistributionGroup 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 *Connect) DescribeTrafficDistributionGroupWithContext(ctx aws.Context, input *DescribeTrafficDistributionGroupInput, opts ...request.Option) (*DescribeTrafficDistributionGroupOutput, error) { + req, out := c.DescribeTrafficDistributionGroupRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDescribeUser = "DescribeUser" // DescribeUserRequest generates a "aws/request.Request" representing the @@ -5786,7 +6114,16 @@ func (c *Connect) DisassociatePhoneNumberContactFlowRequest(input *DisassociateP // DisassociatePhoneNumberContactFlow API operation for Amazon Connect Service. // // Removes the flow association from a phone number claimed to your Amazon Connect -// instance, if a flow association exists. +// instance. +// +// If the number is claimed to a traffic distribution group, and you are calling +// this API using an instance in the Amazon Web Services Region where the traffic +// distribution group was created, you can use either a full phone number ARN +// or UUID value for the PhoneNumberId URI request parameter. However, if the +// number is claimed to a traffic distribution group and you are calling this +// API using an instance in the alternate Amazon Web Services Region associated +// with the traffic distribution group, you must provide a full phone number +// ARN. If a UUID is provided in this scenario, you will receive a ResourceNotFoundException. // // 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 @@ -6842,6 +7179,98 @@ func (c *Connect) GetTaskTemplateWithContext(ctx aws.Context, input *GetTaskTemp return out, req.Send() } +const opGetTrafficDistribution = "GetTrafficDistribution" + +// GetTrafficDistributionRequest generates a "aws/request.Request" representing the +// client's request for the GetTrafficDistribution 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 GetTrafficDistribution for more information on using the GetTrafficDistribution +// 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 GetTrafficDistributionRequest method. +// req, resp := client.GetTrafficDistributionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/GetTrafficDistribution +func (c *Connect) GetTrafficDistributionRequest(input *GetTrafficDistributionInput) (req *request.Request, output *GetTrafficDistributionOutput) { + op := &request.Operation{ + Name: opGetTrafficDistribution, + HTTPMethod: "GET", + HTTPPath: "/traffic-distribution/{Id}", + } + + if input == nil { + input = &GetTrafficDistributionInput{} + } + + output = &GetTrafficDistributionOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetTrafficDistribution API operation for Amazon Connect Service. +// +// Retrieves the current traffic distribution for a given traffic distribution +// group. +// +// 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 Connect Service's +// API operation GetTrafficDistribution for usage and error information. +// +// Returned Error Types: +// +// - InvalidRequestException +// The request is not valid. +// +// - AccessDeniedException +// You do not have sufficient permissions to perform this action. +// +// - ResourceNotFoundException +// The specified resource was not found. +// +// - InternalServiceException +// Request processing failed because of an error or failure with the service. +// +// - ThrottlingException +// The throttling limit has been exceeded. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/GetTrafficDistribution +func (c *Connect) GetTrafficDistribution(input *GetTrafficDistributionInput) (*GetTrafficDistributionOutput, error) { + req, out := c.GetTrafficDistributionRequest(input) + return out, req.Send() +} + +// GetTrafficDistributionWithContext is the same as GetTrafficDistribution with the addition of +// the ability to pass a context and additional request options. +// +// See GetTrafficDistribution 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 *Connect) GetTrafficDistributionWithContext(ctx aws.Context, input *GetTrafficDistributionInput, opts ...request.Option) (*GetTrafficDistributionOutput, error) { + req, out := c.GetTrafficDistributionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opListAgentStatuses = "ListAgentStatuses" // ListAgentStatusesRequest generates a "aws/request.Request" representing the @@ -8997,6 +9426,13 @@ func (c *Connect) ListPhoneNumbersRequest(input *ListPhoneNumbersInput) (req *re // Contact Center (https://docs.aws.amazon.com/connect/latest/adminguide/contact-center-phone-number.html) // in the Amazon Connect Administrator Guide. // +// The phone number Arn value that is returned from each of the items in the +// PhoneNumberSummaryList (https://docs.aws.amazon.com/connect/latest/APIReference/API_ListPhoneNumbers.html#connect-ListPhoneNumbers-response-PhoneNumberSummaryList) +// cannot be used to tag phone number resources. It will fail with a ResourceNotFoundException. +// Instead, use the ListPhoneNumbersV2 (https://docs.aws.amazon.com/connect/latest/APIReference/API_ListPhoneNumbersV2.html) +// API. It returns the new phone number ARN that can be used to tag phone number +// resources. +// // 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. @@ -9143,7 +9579,10 @@ func (c *Connect) ListPhoneNumbersV2Request(input *ListPhoneNumbersV2Input) (req // ListPhoneNumbersV2 API operation for Amazon Connect Service. // -// Lists phone numbers claimed to your Amazon Connect instance. +// Lists phone numbers claimed to your Amazon Connect instance or traffic distribution +// group. If the provided TargetArn is a traffic distribution group, you can +// call this API in both Amazon Web Services Regions associated with traffic +// distribution group. // // For more information about phone numbers, see Set Up Phone Numbers for Your // Contact Center (https://docs.aws.amazon.com/connect/latest/adminguide/contact-center-phone-number.html) @@ -10845,6 +11284,151 @@ func (c *Connect) ListTaskTemplatesPagesWithContext(ctx aws.Context, input *List return p.Err() } +const opListTrafficDistributionGroups = "ListTrafficDistributionGroups" + +// ListTrafficDistributionGroupsRequest generates a "aws/request.Request" representing the +// client's request for the ListTrafficDistributionGroups 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 ListTrafficDistributionGroups for more information on using the ListTrafficDistributionGroups +// 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 ListTrafficDistributionGroupsRequest method. +// req, resp := client.ListTrafficDistributionGroupsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/ListTrafficDistributionGroups +func (c *Connect) ListTrafficDistributionGroupsRequest(input *ListTrafficDistributionGroupsInput) (req *request.Request, output *ListTrafficDistributionGroupsOutput) { + op := &request.Operation{ + Name: opListTrafficDistributionGroups, + HTTPMethod: "GET", + HTTPPath: "/traffic-distribution-groups", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListTrafficDistributionGroupsInput{} + } + + output = &ListTrafficDistributionGroupsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListTrafficDistributionGroups API operation for Amazon Connect Service. +// +// Lists traffic distribution groups. +// +// 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 Connect Service's +// API operation ListTrafficDistributionGroups for usage and error information. +// +// Returned Error Types: +// +// - InvalidRequestException +// The request is not valid. +// +// - AccessDeniedException +// You do not have sufficient permissions to perform this action. +// +// - ThrottlingException +// The throttling limit has been exceeded. +// +// - InternalServiceException +// Request processing failed because of an error or failure with the service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/ListTrafficDistributionGroups +func (c *Connect) ListTrafficDistributionGroups(input *ListTrafficDistributionGroupsInput) (*ListTrafficDistributionGroupsOutput, error) { + req, out := c.ListTrafficDistributionGroupsRequest(input) + return out, req.Send() +} + +// ListTrafficDistributionGroupsWithContext is the same as ListTrafficDistributionGroups with the addition of +// the ability to pass a context and additional request options. +// +// See ListTrafficDistributionGroups 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 *Connect) ListTrafficDistributionGroupsWithContext(ctx aws.Context, input *ListTrafficDistributionGroupsInput, opts ...request.Option) (*ListTrafficDistributionGroupsOutput, error) { + req, out := c.ListTrafficDistributionGroupsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListTrafficDistributionGroupsPages iterates over the pages of a ListTrafficDistributionGroups operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListTrafficDistributionGroups 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 ListTrafficDistributionGroups operation. +// pageNum := 0 +// err := client.ListTrafficDistributionGroupsPages(params, +// func(page *connect.ListTrafficDistributionGroupsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *Connect) ListTrafficDistributionGroupsPages(input *ListTrafficDistributionGroupsInput, fn func(*ListTrafficDistributionGroupsOutput, bool) bool) error { + return c.ListTrafficDistributionGroupsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListTrafficDistributionGroupsPagesWithContext same as ListTrafficDistributionGroupsPages 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 *Connect) ListTrafficDistributionGroupsPagesWithContext(ctx aws.Context, input *ListTrafficDistributionGroupsInput, fn func(*ListTrafficDistributionGroupsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListTrafficDistributionGroupsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListTrafficDistributionGroupsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListTrafficDistributionGroupsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + const opListUseCases = "ListUseCases" // ListUseCasesRequest generates a "aws/request.Request" representing the @@ -11436,7 +12020,17 @@ func (c *Connect) ReleasePhoneNumberRequest(input *ReleasePhoneNumberInput) (req // ReleasePhoneNumber API operation for Amazon Connect Service. // -// Releases a phone number previously claimed to an Amazon Connect instance. +// Releases a phone number previously claimed to an Amazon Connect instance +// or traffic distribution group. You can call this API only in the Amazon Web +// Services Region where the number was claimed. +// +// To release phone numbers from a traffic distribution group, use the ReleasePhoneNumber +// API, not the Amazon Connect console. +// +// After releasing a phone number, the phone number enters into a cooldown period +// of 30 days. It cannot be searched for or claimed again until the period has +// ended. If you accidentally release a phone number, contact Amazon Web Services +// Support. // // 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 @@ -11490,6 +12084,111 @@ func (c *Connect) ReleasePhoneNumberWithContext(ctx aws.Context, input *ReleaseP return out, req.Send() } +const opReplicateInstance = "ReplicateInstance" + +// ReplicateInstanceRequest generates a "aws/request.Request" representing the +// client's request for the ReplicateInstance 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 ReplicateInstance for more information on using the ReplicateInstance +// 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 ReplicateInstanceRequest method. +// req, resp := client.ReplicateInstanceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/ReplicateInstance +func (c *Connect) ReplicateInstanceRequest(input *ReplicateInstanceInput) (req *request.Request, output *ReplicateInstanceOutput) { + op := &request.Operation{ + Name: opReplicateInstance, + HTTPMethod: "POST", + HTTPPath: "/instance/{InstanceId}/replicate", + } + + if input == nil { + input = &ReplicateInstanceInput{} + } + + output = &ReplicateInstanceOutput{} + req = c.newRequest(op, input, output) + return +} + +// ReplicateInstance API operation for Amazon Connect Service. +// +// Replicates an Amazon Connect instance in the specified Amazon Web Services +// Region. +// +// For more information about replicating an Amazon Connect instance, see Create +// a replica of your existing Amazon Connect instance (https://docs.aws.amazon.com/connect/latest/adminguide/create-replica-connect-instance.html) +// in the Amazon Connect Administrator 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 +// the error. +// +// See the AWS API reference guide for Amazon Connect Service's +// API operation ReplicateInstance for usage and error information. +// +// Returned Error Types: +// +// - InvalidRequestException +// The request is not valid. +// +// - AccessDeniedException +// You do not have sufficient permissions to perform this action. +// +// - ServiceQuotaExceededException +// The service quota has been exceeded. +// +// - ThrottlingException +// The throttling limit has been exceeded. +// +// - ResourceNotFoundException +// The specified resource was not found. +// +// - InternalServiceException +// Request processing failed because of an error or failure with the service. +// +// - ResourceNotReadyException +// The resource is not ready. +// +// - ResourceConflictException +// A resource already has that name. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/ReplicateInstance +func (c *Connect) ReplicateInstance(input *ReplicateInstanceInput) (*ReplicateInstanceOutput, error) { + req, out := c.ReplicateInstanceRequest(input) + return out, req.Send() +} + +// ReplicateInstanceWithContext is the same as ReplicateInstance with the addition of +// the ability to pass a context and additional request options. +// +// See ReplicateInstance 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 *Connect) ReplicateInstanceWithContext(ctx aws.Context, input *ReplicateInstanceInput, opts ...request.Option) (*ReplicateInstanceOutput, error) { + req, out := c.ReplicateInstanceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opResumeContactRecording = "ResumeContactRecording" // ResumeContactRecordingRequest generates a "aws/request.Request" representing the @@ -11629,7 +12328,9 @@ func (c *Connect) SearchAvailablePhoneNumbersRequest(input *SearchAvailablePhone // SearchAvailablePhoneNumbers API operation for Amazon Connect Service. // // Searches for available phone numbers that you can claim to your Amazon Connect -// instance. +// instance or traffic distribution group. If the provided TargetArn is a traffic +// distribution group, you can call this API in both Amazon Web Services Regions +// associated with the traffic distribution group. // // 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 @@ -12226,6 +12927,8 @@ func (c *Connect) SearchUsersRequest(input *SearchUsersInput) (req *request.Requ // // Searches users in an Amazon Connect instance, with optional filtering. // +// AfterContactWorkTimeLimit is returned in milliseconds. +// // 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. @@ -14889,7 +15592,12 @@ func (c *Connect) UpdatePhoneNumberRequest(input *UpdatePhoneNumberInput) (req * // UpdatePhoneNumber API operation for Amazon Connect Service. // // Updates your claimed phone number from its current Amazon Connect instance -// to another Amazon Connect instance in the same Region. +// or traffic distribution group to another Amazon Connect instance or traffic +// distribution group in the same Amazon Web Services Region. +// +// You can call DescribePhoneNumber (https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribePhoneNumber.html) +// API to verify the status of a previous UpdatePhoneNumber (https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdatePhoneNumber.html) +// operation. // // 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 @@ -15279,6 +15987,17 @@ func (c *Connect) UpdateQueueOutboundCallerConfigRequest(input *UpdateQueueOutbo // Updates the outbound caller ID name, number, and outbound whisper flow for // a specified queue. // +// If the number being used in the input is claimed to a traffic distribution +// group, and you are calling this API using an instance in the Amazon Web Services +// Region where the traffic distribution group was created, you can use either +// a full phone number ARN or UUID value for the OutboundCallerIdNumberId value +// of the OutboundCallerConfig (https://docs.aws.amazon.com/connect/latest/APIReference/API_OutboundCallerConfig) +// request body parameter. However, if the number is claimed to a traffic distribution +// group and you are calling this API using an instance in the alternate Amazon +// Web Services Region associated with the traffic distribution group, you must +// provide a full phone number ARN. If a UUID is provided in this scenario, +// you will receive a ResourceNotFoundException. +// // 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. @@ -16167,6 +16886,104 @@ func (c *Connect) UpdateTaskTemplateWithContext(ctx aws.Context, input *UpdateTa return out, req.Send() } +const opUpdateTrafficDistribution = "UpdateTrafficDistribution" + +// UpdateTrafficDistributionRequest generates a "aws/request.Request" representing the +// client's request for the UpdateTrafficDistribution 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 UpdateTrafficDistribution for more information on using the UpdateTrafficDistribution +// 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 UpdateTrafficDistributionRequest method. +// req, resp := client.UpdateTrafficDistributionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/UpdateTrafficDistribution +func (c *Connect) UpdateTrafficDistributionRequest(input *UpdateTrafficDistributionInput) (req *request.Request, output *UpdateTrafficDistributionOutput) { + op := &request.Operation{ + Name: opUpdateTrafficDistribution, + HTTPMethod: "PUT", + HTTPPath: "/traffic-distribution/{Id}", + } + + if input == nil { + input = &UpdateTrafficDistributionInput{} + } + + output = &UpdateTrafficDistributionOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// UpdateTrafficDistribution API operation for Amazon Connect Service. +// +// Updates the traffic distribution for a given traffic distribution group. +// For more information about updating a traffic distribution group see Update +// telephony traffic distribution across Amazon Web Services Regions (https://docs.aws.amazon.com/connect/latest/adminguide/update-telephony-traffic-distribution.html) +// in the Amazon Connect Administrator 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 +// the error. +// +// See the AWS API reference guide for Amazon Connect Service's +// API operation UpdateTrafficDistribution for usage and error information. +// +// Returned Error Types: +// +// - InvalidRequestException +// The request is not valid. +// +// - AccessDeniedException +// You do not have sufficient permissions to perform this action. +// +// - ResourceNotFoundException +// The specified resource was not found. +// +// - ResourceConflictException +// A resource already has that name. +// +// - ThrottlingException +// The throttling limit has been exceeded. +// +// - InternalServiceException +// Request processing failed because of an error or failure with the service. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/connect-2017-08-08/UpdateTrafficDistribution +func (c *Connect) UpdateTrafficDistribution(input *UpdateTrafficDistributionInput) (*UpdateTrafficDistributionOutput, error) { + req, out := c.UpdateTrafficDistributionRequest(input) + return out, req.Send() +} + +// UpdateTrafficDistributionWithContext is the same as UpdateTrafficDistribution with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateTrafficDistribution 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 *Connect) UpdateTrafficDistributionWithContext(ctx aws.Context, input *UpdateTrafficDistributionInput, opts ...request.Option) (*UpdateTrafficDistributionOutput, error) { + req, out := c.UpdateTrafficDistributionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opUpdateUserHierarchy = "UpdateUserHierarchy" // UpdateUserHierarchyRequest generates a "aws/request.Request" representing the @@ -18521,7 +19338,9 @@ type ClaimPhoneNumberInput struct { _ struct{} `type:"structure"` // A unique, case-sensitive identifier that you provide to ensure the idempotency - // of the request. + // of the request. If not provided, the Amazon Web Services SDK populates this + // field. For more information about idempotency, see Making retries safe with + // idempotent APIs (https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/). ClientToken *string `type:"string" idempotencyToken:"true"` // The phone number you want to claim. Phone numbers are formatted [+] [country @@ -18537,8 +19356,8 @@ type ClaimPhoneNumberInput struct { // example, { "tags": {"key1":"value1", "key2":"value2"} }. Tags map[string]*string `min:"1" type:"map"` - // The Amazon Resource Name (ARN) for Amazon Connect instances that phone numbers - // are claimed to. + // The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution + // groups that phone numbers are claimed to. // // TargetArn is a required field TargetArn *string `type:"string" required:"true"` @@ -18652,7 +19471,7 @@ func (s *ClaimPhoneNumberOutput) SetPhoneNumberId(v string) *ClaimPhoneNumberOut } // Information about a phone number that has been claimed to your Amazon Connect -// instance. +// instance or traffic distribution group. type ClaimedPhoneNumberSummary struct { _ struct{} `type:"structure"` @@ -18673,6 +19492,28 @@ type ClaimedPhoneNumberSummary struct { PhoneNumberId *string `type:"string"` // The status of the phone number. + // + // * CLAIMED means the previous ClaimedPhoneNumber (https://docs.aws.amazon.com/connect/latest/APIReference/API_ClaimedPhoneNumber.html) + // or UpdatePhoneNumber (https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdatePhoneNumber.html) + // operation succeeded. + // + // * IN_PROGRESS means a ClaimedPhoneNumber (https://docs.aws.amazon.com/connect/latest/APIReference/API_ClaimedPhoneNumber.html) + // or UpdatePhoneNumber (https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdatePhoneNumber.html) + // operation is still in progress and has not yet completed. You can call + // DescribePhoneNumber (https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribePhoneNumber.html) + // at a later time to verify if the previous operation has completed. + // + // * FAILED indicates that the previous ClaimedPhoneNumber (https://docs.aws.amazon.com/connect/latest/APIReference/API_ClaimedPhoneNumber.html) + // or UpdatePhoneNumber (https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdatePhoneNumber.html) + // operation has failed. It will include a message indicating the failure + // reason. A common reason for a failure may be that the TargetArn value + // you are claiming or updating a phone number to has reached its limit of + // total claimed numbers. If you received a FAILED status from a ClaimPhoneNumber + // API call, you have one day to retry claiming the phone number before the + // number is released back to the inventory for other customers to claim. + // + // You will not be billed for the phone number during the 1-day period if number + // claiming fails. PhoneNumberStatus *PhoneNumberStatus `type:"structure"` // The type of phone number. @@ -18682,8 +19523,8 @@ type ClaimedPhoneNumberSummary struct { // example, { "tags": {"key1":"value1", "key2":"value2"} }. Tags map[string]*string `min:"1" type:"map"` - // The Amazon Resource Name (ARN) for Amazon Connect instances that phone numbers - // are claimed to. + // The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution + // groups that phone numbers are claimed to. TargetArn *string `type:"string"` } @@ -19737,7 +20578,9 @@ type CreateContactFlowModuleInput struct { _ struct{} `type:"structure"` // A unique, case-sensitive identifier that you provide to ensure the idempotency - // of the request. + // of the request. If not provided, the Amazon Web Services SDK populates this + // field. For more information about idempotency, see Making retries safe with + // idempotent APIs (https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/). ClientToken *string `type:"string" idempotencyToken:"true"` // The content of the flow module. @@ -21093,7 +21936,9 @@ type CreateTaskTemplateInput struct { _ struct{} `type:"structure"` // A unique, case-sensitive identifier that you provide to ensure the idempotency - // of the request. + // of the request. If not provided, the Amazon Web Services SDK populates this + // field. For more information about idempotency, see Making retries safe with + // idempotent APIs (https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/). ClientToken *string `type:"string" idempotencyToken:"true"` // Constraints that are applicable to the fields listed. @@ -21296,6 +22141,153 @@ func (s *CreateTaskTemplateOutput) SetId(v string) *CreateTaskTemplateOutput { return s } +type CreateTrafficDistributionGroupInput struct { + _ struct{} `type:"structure"` + + // A unique, case-sensitive identifier that you provide to ensure the idempotency + // of the request. If not provided, the Amazon Web Services SDK populates this + // field. For more information about idempotency, see Making retries safe with + // idempotent APIs (https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/). + ClientToken *string `type:"string" idempotencyToken:"true"` + + // A description for the traffic distribution group. + Description *string `min:"1" type:"string"` + + // The identifier of the Amazon Connect instance that has been replicated. You + // can find the instanceId in the ARN of the instance. + // + // InstanceId is a required field + InstanceId *string `min:"1" type:"string" required:"true"` + + // The name for the traffic distribution group. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The tags used to organize, track, or control access for this resource. For + // example, { "tags": {"key1":"value1", "key2":"value2"} }. + Tags map[string]*string `min:"1" type:"map"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateTrafficDistributionGroupInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateTrafficDistributionGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateTrafficDistributionGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateTrafficDistributionGroupInput"} + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.InstanceId == nil { + invalidParams.Add(request.NewErrParamRequired("InstanceId")) + } + if s.InstanceId != nil && len(*s.InstanceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("InstanceId", 1)) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Name", 1)) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientToken sets the ClientToken field's value. +func (s *CreateTrafficDistributionGroupInput) SetClientToken(v string) *CreateTrafficDistributionGroupInput { + s.ClientToken = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *CreateTrafficDistributionGroupInput) SetDescription(v string) *CreateTrafficDistributionGroupInput { + s.Description = &v + return s +} + +// SetInstanceId sets the InstanceId field's value. +func (s *CreateTrafficDistributionGroupInput) SetInstanceId(v string) *CreateTrafficDistributionGroupInput { + s.InstanceId = &v + return s +} + +// SetName sets the Name field's value. +func (s *CreateTrafficDistributionGroupInput) SetName(v string) *CreateTrafficDistributionGroupInput { + s.Name = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateTrafficDistributionGroupInput) SetTags(v map[string]*string) *CreateTrafficDistributionGroupInput { + s.Tags = v + return s +} + +type CreateTrafficDistributionGroupOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the traffic distribution group. + Arn *string `type:"string"` + + // The identifier of the traffic distribution group. This can be the ID or the + // ARN if the API is being called in the Region where the traffic distribution + // group was created. The ARN must be provided if the call is from the replicated + // Region. + Id *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateTrafficDistributionGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateTrafficDistributionGroupOutput) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *CreateTrafficDistributionGroupOutput) SetArn(v string) *CreateTrafficDistributionGroupOutput { + s.Arn = &v + return s +} + +// SetId sets the Id field's value. +func (s *CreateTrafficDistributionGroupOutput) SetId(v string) *CreateTrafficDistributionGroupOutput { + s.Id = &v + return s +} + type CreateUseCaseInput struct { _ struct{} `type:"structure"` @@ -21787,9 +22779,11 @@ type CreateVocabularyInput struct { _ struct{} `type:"structure"` // A unique, case-sensitive identifier that you provide to ensure the idempotency - // of the request. If a create request is received more than once with same - // client token, subsequent requests return the previous response without creating - // a vocabulary again. + // of the request. If not provided, the Amazon Web Services SDK populates this + // field. For more information about idempotency, see Making retries safe with + // idempotent APIs (https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/). + // If a create request is received more than once with same client token, subsequent + // requests return the previous response without creating a vocabulary again. ClientToken *string `type:"string" idempotencyToken:"true"` // The content of the custom vocabulary in plain-text format with a table of @@ -22965,6 +23959,80 @@ func (s DeleteTaskTemplateOutput) GoString() string { return s.String() } +type DeleteTrafficDistributionGroupInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the traffic distribution group. This can be the ID or the + // ARN if the API is being called in the Region where the traffic distribution + // group was created. The ARN must be provided if the call is from the replicated + // Region. + // + // TrafficDistributionGroupId is a required field + TrafficDistributionGroupId *string `location:"uri" locationName:"TrafficDistributionGroupId" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteTrafficDistributionGroupInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteTrafficDistributionGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteTrafficDistributionGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteTrafficDistributionGroupInput"} + if s.TrafficDistributionGroupId == nil { + invalidParams.Add(request.NewErrParamRequired("TrafficDistributionGroupId")) + } + if s.TrafficDistributionGroupId != nil && len(*s.TrafficDistributionGroupId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("TrafficDistributionGroupId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetTrafficDistributionGroupId sets the TrafficDistributionGroupId field's value. +func (s *DeleteTrafficDistributionGroupInput) SetTrafficDistributionGroupId(v string) *DeleteTrafficDistributionGroupInput { + s.TrafficDistributionGroupId = &v + return s +} + +type DeleteTrafficDistributionGroupOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteTrafficDistributionGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteTrafficDistributionGroupOutput) GoString() string { + return s.String() +} + type DeleteUseCaseInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -24205,7 +25273,7 @@ type DescribePhoneNumberOutput struct { _ struct{} `type:"structure"` // Information about a phone number that's been claimed to your Amazon Connect - // instance. + // instance or traffic distribution group. ClaimedPhoneNumberSummary *ClaimedPhoneNumberSummary `type:"structure"` } @@ -24625,6 +25693,89 @@ func (s *DescribeSecurityProfileOutput) SetSecurityProfile(v *SecurityProfile) * return s } +type DescribeTrafficDistributionGroupInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the traffic distribution group. This can be the ID or the + // ARN if the API is being called in the Region where the traffic distribution + // group was created. The ARN must be provided if the call is from the replicated + // Region. + // + // TrafficDistributionGroupId is a required field + TrafficDistributionGroupId *string `location:"uri" locationName:"TrafficDistributionGroupId" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeTrafficDistributionGroupInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeTrafficDistributionGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeTrafficDistributionGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeTrafficDistributionGroupInput"} + if s.TrafficDistributionGroupId == nil { + invalidParams.Add(request.NewErrParamRequired("TrafficDistributionGroupId")) + } + if s.TrafficDistributionGroupId != nil && len(*s.TrafficDistributionGroupId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("TrafficDistributionGroupId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetTrafficDistributionGroupId sets the TrafficDistributionGroupId field's value. +func (s *DescribeTrafficDistributionGroupInput) SetTrafficDistributionGroupId(v string) *DescribeTrafficDistributionGroupInput { + s.TrafficDistributionGroupId = &v + return s +} + +type DescribeTrafficDistributionGroupOutput struct { + _ struct{} `type:"structure"` + + // Information about the traffic distribution group. + TrafficDistributionGroup *TrafficDistributionGroup `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeTrafficDistributionGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DescribeTrafficDistributionGroupOutput) GoString() string { + return s.String() +} + +// SetTrafficDistributionGroup sets the TrafficDistributionGroup field's value. +func (s *DescribeTrafficDistributionGroupOutput) SetTrafficDistributionGroup(v *TrafficDistributionGroup) *DescribeTrafficDistributionGroupOutput { + s.TrafficDistributionGroup = v + return s +} + type DescribeUserHierarchyGroupInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -25498,7 +26649,7 @@ type DisassociateLexBotInput struct { // InstanceId is a required field InstanceId *string `location:"uri" locationName:"InstanceId" min:"1" type:"string" required:"true"` - // The Region in which the Amazon Lex bot has been created. + // The Amazon Web Services Region in which the Amazon Lex bot has been created. // // LexRegion is a required field LexRegion *string `location:"querystring" locationName:"lexRegion" type:"string" required:"true"` @@ -25982,6 +27133,70 @@ func (s DisassociateSecurityKeyOutput) GoString() string { return s.String() } +// Information about a traffic distribution. +type Distribution struct { + _ struct{} `type:"structure"` + + // The percentage of the traffic that is distributed, in increments of 10. + // + // Percentage is a required field + Percentage *int64 `type:"integer" required:"true"` + + // The Amazon Web Services Region where the traffic is distributed. + // + // Region is a required field + Region *string `min:"8" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Distribution) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Distribution) GoString() string { + return s.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.Percentage == nil { + invalidParams.Add(request.NewErrParamRequired("Percentage")) + } + if s.Region == nil { + invalidParams.Add(request.NewErrParamRequired("Region")) + } + if s.Region != nil && len(*s.Region) < 8 { + invalidParams.Add(request.NewErrParamMinLen("Region", 8)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetPercentage sets the Percentage field's value. +func (s *Distribution) SetPercentage(v int64) *Distribution { + s.Percentage = &v + return s +} + +// SetRegion sets the Region field's value. +func (s *Distribution) SetRegion(v string) *Distribution { + s.Region = &v + return s +} + // A resource with the specified name already exists. type DuplicateResourceException struct { _ struct{} `type:"structure"` @@ -27387,6 +28602,107 @@ func (s *GetTaskTemplateOutput) SetTags(v map[string]*string) *GetTaskTemplateOu return s } +type GetTrafficDistributionInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the traffic distribution group. + // + // Id is a required field + Id *string `location:"uri" locationName:"Id" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetTrafficDistributionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetTrafficDistributionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetTrafficDistributionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetTrafficDistributionInput"} + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetId sets the Id field's value. +func (s *GetTrafficDistributionInput) SetId(v string) *GetTrafficDistributionInput { + s.Id = &v + return s +} + +type GetTrafficDistributionOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the traffic distribution group. + Arn *string `type:"string"` + + // The identifier of the traffic distribution group. This can be the ID or the + // ARN if the API is being called in the Region where the traffic distribution + // group was created. The ARN must be provided if the call is from the replicated + // Region. + Id *string `type:"string"` + + // The distribution of traffic between the instance and its replicas. + TelephonyConfig *TelephonyConfig `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetTrafficDistributionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetTrafficDistributionOutput) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *GetTrafficDistributionOutput) SetArn(v string) *GetTrafficDistributionOutput { + s.Arn = &v + return s +} + +// SetId sets the Id field's value. +func (s *GetTrafficDistributionOutput) SetId(v string) *GetTrafficDistributionOutput { + s.Id = &v + return s +} + +// SetTelephonyConfig sets the TelephonyConfig field's value. +func (s *GetTrafficDistributionOutput) SetTelephonyConfig(v *TelephonyConfig) *GetTrafficDistributionOutput { + s.TelephonyConfig = v + return s +} + // Contains information about a hierarchy group. type HierarchyGroup struct { _ struct{} `type:"structure"` @@ -29520,7 +30836,7 @@ func (s *KinesisVideoStreamConfig) SetRetentionPeriodHours(v int64) *KinesisVide type LexBot struct { _ struct{} `type:"structure"` - // The Region that the Amazon Lex bot was created in. + // The Amazon Web Services Region where the Amazon Lex bot was created. LexRegion *string `type:"string"` // The name of the Amazon Lex bot. @@ -30030,8 +31346,8 @@ func (s *ListBotsInput) SetNextToken(v string) *ListBotsInput { type ListBotsOutput struct { _ struct{} `type:"structure"` - // The names and Regions of the Amazon Lex or Amazon Lex V2 bots associated - // with the specified instance. + // The names and Amazon Web Services Regions of the Amazon Lex or Amazon Lex + // V2 bots associated with the specified instance. LexBots []*LexBotConfig `type:"list"` // If there are additional results, this is the token for the next set of results. @@ -31328,8 +32644,8 @@ func (s *ListLexBotsInput) SetNextToken(v string) *ListLexBotsInput { type ListLexBotsOutput struct { _ struct{} `type:"structure"` - // The names and Regions of the Amazon Lex bots associated with the specified - // instance. + // The names and Amazon Web Services Regions of the Amazon Lex bots associated + // with the specified instance. LexBots []*LexBot `type:"list"` // If there are additional results, this is the token for the next set of results. @@ -31498,7 +32814,7 @@ func (s *ListPhoneNumbersOutput) SetPhoneNumberSummaryList(v []*PhoneNumberSumma } // Information about phone numbers that have been claimed to your Amazon Connect -// instance. +// instance or traffic distribution group. type ListPhoneNumbersSummary struct { _ struct{} `type:"structure"` @@ -31518,8 +32834,8 @@ type ListPhoneNumbersSummary struct { // The type of phone number. PhoneNumberType *string `type:"string" enum:"PhoneNumberType"` - // The Amazon Resource Name (ARN) for Amazon Connect instances that phone numbers - // are claimed to. + // The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution + // groups that phone numbers are claimed to. TargetArn *string `type:"string"` } @@ -31597,9 +32913,10 @@ type ListPhoneNumbersV2Input struct { // The type of phone number. PhoneNumberTypes []*string `type:"list" enum:"PhoneNumberType"` - // The Amazon Resource Name (ARN) for Amazon Connect instances that phone numbers - // are claimed to. If TargetArn input is not provided, this API lists numbers - // claimed to all the Amazon Connect instances belonging to your account. + // The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution + // groups that phone numbers are claimed to. If TargetArn input is not provided, + // this API lists numbers claimed to all the Amazon Connect instances belonging + // to your account in the same Amazon Web Services Region as the request. TargetArn *string `type:"string"` } @@ -31677,7 +32994,7 @@ type ListPhoneNumbersV2Output struct { _ struct{} `type:"structure"` // Information about phone numbers that have been claimed to your Amazon Connect - // instances. + // instances or traffic distribution groups. ListPhoneNumbersSummaryList []*ListPhoneNumbersSummary `type:"list"` // If there are additional results, this is the token for the next set of results. @@ -33022,6 +34339,113 @@ func (s *ListTaskTemplatesOutput) SetTaskTemplates(v []*TaskTemplateMetadata) *L return s } +type ListTrafficDistributionGroupsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The identifier of the Amazon Connect instance. You can find the instanceId + // in the ARN of the instance. + InstanceId *string `location:"querystring" locationName:"instanceId" min:"1" type:"string"` + + // The maximum number of results to return per page. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // The token for the next set of results. Use the value returned in the previous + // response in the next request to retrieve the next set of results. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTrafficDistributionGroupsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTrafficDistributionGroupsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTrafficDistributionGroupsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListTrafficDistributionGroupsInput"} + if s.InstanceId != nil && len(*s.InstanceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("InstanceId", 1)) + } + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetInstanceId sets the InstanceId field's value. +func (s *ListTrafficDistributionGroupsInput) SetInstanceId(v string) *ListTrafficDistributionGroupsInput { + s.InstanceId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListTrafficDistributionGroupsInput) SetMaxResults(v int64) *ListTrafficDistributionGroupsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListTrafficDistributionGroupsInput) SetNextToken(v string) *ListTrafficDistributionGroupsInput { + s.NextToken = &v + return s +} + +type ListTrafficDistributionGroupsOutput struct { + _ struct{} `type:"structure"` + + // If there are additional results, this is the token for the next set of results. + NextToken *string `type:"string"` + + // A list of traffic distribution groups. + TrafficDistributionGroupSummaryList []*TrafficDistributionGroupSummary `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTrafficDistributionGroupsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListTrafficDistributionGroupsOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListTrafficDistributionGroupsOutput) SetNextToken(v string) *ListTrafficDistributionGroupsOutput { + s.NextToken = &v + return s +} + +// SetTrafficDistributionGroupSummaryList sets the TrafficDistributionGroupSummaryList field's value. +func (s *ListTrafficDistributionGroupsOutput) SetTrafficDistributionGroupSummaryList(v []*TrafficDistributionGroupSummary) *ListTrafficDistributionGroupsOutput { + s.TrafficDistributionGroupSummaryList = v + return s +} + // Provides summary information about the use cases for the specified integration // association. type ListUseCasesInput struct { @@ -33718,6 +35142,25 @@ func (s *PhoneNumberQuickConnectConfig) SetPhoneNumber(v string) *PhoneNumberQui } // The status of the phone number. +// +// - CLAIMED means the previous ClaimedPhoneNumber (https://docs.aws.amazon.com/connect/latest/APIReference/API_ClaimedPhoneNumber.html) +// or UpdatePhoneNumber (https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdatePhoneNumber.html) +// operation succeeded. +// +// - IN_PROGRESS means a ClaimedPhoneNumber (https://docs.aws.amazon.com/connect/latest/APIReference/API_ClaimedPhoneNumber.html) +// or UpdatePhoneNumber (https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdatePhoneNumber.html) +// operation is still in progress and has not yet completed. You can call +// DescribePhoneNumber (https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribePhoneNumber.html) +// at a later time to verify if the previous operation has completed. +// +// - FAILED indicates that the previous ClaimedPhoneNumber (https://docs.aws.amazon.com/connect/latest/APIReference/API_ClaimedPhoneNumber.html) +// or UpdatePhoneNumber (https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdatePhoneNumber.html) +// operation has failed. It will include a message indicating the failure +// reason. A common reason for a failure may be that the TargetArn value +// you are claiming or updating a phone number to has reached its limit of +// total claimed numbers. If you received a FAILED status from a ClaimPhoneNumber +// API call, you have one day to retry claiming the phone number before the +// number is released back to the inventory for other customers to claim. type PhoneNumberStatus struct { _ struct{} `type:"structure"` @@ -34246,7 +35689,7 @@ type QueueInfo struct { // The timestamp when the contact was added to the queue. EnqueueTimestamp *time.Time `type:"timestamp"` - // The identifier of the agent who accepted the contact. + // The unique identifier for the queue. Id *string `type:"string"` } @@ -34396,8 +35839,9 @@ type QueueSearchCriteria struct { // The type of queue. QueueTypeCondition *string `type:"string" enum:"SearchableQueueType"` - // A leaf node condition which can be used to specify a string condition, for - // example, username = 'abc'. + // A leaf node condition which can be used to specify a string condition. + // + // The currently supported value for FieldName: name StringCondition *StringCondition `type:"structure"` } @@ -34822,7 +36266,7 @@ func (s *ReadOnlyFieldInfo) SetId(v *TaskTemplateFieldIdentifier) *ReadOnlyField type Reference struct { _ struct{} `type:"structure"` - // The type of the reference. + // The type of the reference. DATE must be of type Epoch timestamp. // // Type is a required field Type *string `type:"string" required:"true" enum:"ReferenceType"` @@ -34969,7 +36413,9 @@ type ReleasePhoneNumberInput struct { _ struct{} `type:"structure" nopayload:"true"` // A unique, case-sensitive identifier that you provide to ensure the idempotency - // of the request. + // of the request. If not provided, the Amazon Web Services SDK populates this + // field. For more information about idempotency, see Making retries safe with + // idempotent APIs (https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/). ClientToken *string `location:"querystring" locationName:"clientToken" type:"string" idempotencyToken:"true"` // A unique identifier for the phone number. @@ -35046,6 +36492,148 @@ func (s ReleasePhoneNumberOutput) GoString() string { return s.String() } +type ReplicateInstanceInput struct { + _ struct{} `type:"structure"` + + // A unique, case-sensitive identifier that you provide to ensure the idempotency + // of the request. If not provided, the Amazon Web Services SDK populates this + // field. For more information about idempotency, see Making retries safe with + // idempotent APIs (https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/). + ClientToken *string `type:"string" idempotencyToken:"true"` + + // The identifier of the Amazon Connect instance. You can find the instanceId + // in the ARN of the instance. + // + // InstanceId is a required field + InstanceId *string `location:"uri" locationName:"InstanceId" min:"1" type:"string" required:"true"` + + // The alias for the replicated instance. The ReplicaAlias must be unique. + // + // ReplicaAlias is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by ReplicateInstanceInput's + // String and GoString methods. + // + // ReplicaAlias is a required field + ReplicaAlias *string `min:"1" type:"string" required:"true" sensitive:"true"` + + // The Amazon Web Services Region where to replicate the Amazon Connect instance. + // + // ReplicaRegion is a required field + ReplicaRegion *string `min:"8" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ReplicateInstanceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ReplicateInstanceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ReplicateInstanceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ReplicateInstanceInput"} + if s.InstanceId == nil { + invalidParams.Add(request.NewErrParamRequired("InstanceId")) + } + if s.InstanceId != nil && len(*s.InstanceId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("InstanceId", 1)) + } + if s.ReplicaAlias == nil { + invalidParams.Add(request.NewErrParamRequired("ReplicaAlias")) + } + if s.ReplicaAlias != nil && len(*s.ReplicaAlias) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ReplicaAlias", 1)) + } + if s.ReplicaRegion == nil { + invalidParams.Add(request.NewErrParamRequired("ReplicaRegion")) + } + if s.ReplicaRegion != nil && len(*s.ReplicaRegion) < 8 { + invalidParams.Add(request.NewErrParamMinLen("ReplicaRegion", 8)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientToken sets the ClientToken field's value. +func (s *ReplicateInstanceInput) SetClientToken(v string) *ReplicateInstanceInput { + s.ClientToken = &v + return s +} + +// SetInstanceId sets the InstanceId field's value. +func (s *ReplicateInstanceInput) SetInstanceId(v string) *ReplicateInstanceInput { + s.InstanceId = &v + return s +} + +// SetReplicaAlias sets the ReplicaAlias field's value. +func (s *ReplicateInstanceInput) SetReplicaAlias(v string) *ReplicateInstanceInput { + s.ReplicaAlias = &v + return s +} + +// SetReplicaRegion sets the ReplicaRegion field's value. +func (s *ReplicateInstanceInput) SetReplicaRegion(v string) *ReplicateInstanceInput { + s.ReplicaRegion = &v + return s +} + +type ReplicateInstanceOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the replicated instance. + Arn *string `type:"string"` + + // The identifier of the replicated instance. You can find the instanceId in + // the ARN of the instance. The replicated instance has the same identifier + // as the instance it was replicated from. + Id *string `min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ReplicateInstanceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ReplicateInstanceOutput) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *ReplicateInstanceOutput) SetArn(v string) *ReplicateInstanceOutput { + s.Arn = &v + return s +} + +// SetId sets the Id field's value. +func (s *ReplicateInstanceOutput) SetId(v string) *ReplicateInstanceOutput { + s.Id = &v + return s +} + // Information about a required field. type RequiredFieldInfo struct { _ struct{} `type:"structure"` @@ -35292,6 +36880,70 @@ func (s *ResourceNotFoundException) RequestID() string { return s.RespMetadata.RequestID } +// The resource is not ready. +type ResourceNotReadyException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"Message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceNotReadyException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceNotReadyException) GoString() string { + return s.String() +} + +func newErrorResourceNotReadyException(v protocol.ResponseMetadata) error { + return &ResourceNotReadyException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ResourceNotReadyException) Code() string { + return "ResourceNotReadyException" +} + +// Message returns the exception's message. +func (s *ResourceNotReadyException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ResourceNotReadyException) OrigErr() error { + return nil +} + +func (s *ResourceNotReadyException) 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 *ResourceNotReadyException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ResourceNotReadyException) RequestID() string { + return s.RespMetadata.RequestID +} + type ResumeContactRecordingInput struct { _ struct{} `type:"structure"` @@ -35809,8 +37461,9 @@ type RoutingProfileSearchCriteria struct { // A list of conditions which would be applied together with an OR condition. OrConditions []*RoutingProfileSearchCriteria `type:"list"` - // A leaf node condition which can be used to specify a string condition, for - // example, username = 'abc'. + // A leaf node condition which can be used to specify a string condition. + // + // The currently supported value for FieldName: name StringCondition *StringCondition `type:"structure"` } @@ -36043,8 +37696,8 @@ type SearchAvailablePhoneNumbersInput struct { // PhoneNumberType is a required field PhoneNumberType *string `type:"string" required:"true" enum:"PhoneNumberType"` - // The Amazon Resource Name (ARN) for Amazon Connect instances that phone numbers - // are claimed to. + // The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution + // groups that phone numbers are claimed to. // // TargetArn is a required field TargetArn *string `type:"string" required:"true"` @@ -36132,8 +37785,8 @@ func (s *SearchAvailablePhoneNumbersInput) SetTargetArn(v string) *SearchAvailab type SearchAvailablePhoneNumbersOutput struct { _ struct{} `type:"structure"` - // A list of available phone numbers that you can claim for your Amazon Connect - // instance. + // A list of available phone numbers that you can claim to your Amazon Connect + // instance or traffic distribution group. AvailableNumbersList []*AvailableNumberSummary `type:"list"` // If there are additional results, this is the token for the next set of results. @@ -36471,6 +38124,8 @@ type SearchSecurityProfilesInput struct { NextToken *string `min:"1" type:"string"` // The search criteria to be used to return security profiles. + // + // The currently supported value for FieldName: name SearchCriteria *SecurityProfileSearchCriteria `type:"structure"` // Filters to be applied to search results. @@ -37022,8 +38677,9 @@ type SecurityProfileSearchCriteria struct { // A list of conditions which would be applied together with an OR condition. OrConditions []*SecurityProfileSearchCriteria `type:"list"` - // A leaf node condition which can be used to specify a string condition, for - // example, username = 'abc'. + // A leaf node condition which can be used to specify a string condition. + // + // The currently supported value for FieldName: name StringCondition *StringCondition `type:"structure"` } @@ -37310,7 +38966,9 @@ type StartChatContactInput struct { ChatDurationInMinutes *int64 `min:"60" type:"integer"` // A unique, case-sensitive identifier that you provide to ensure the idempotency - // of the request. + // of the request. If not provided, the Amazon Web Services SDK populates this + // field. For more information about idempotency, see Making retries safe with + // idempotent APIs (https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/). ClientToken *string `type:"string" idempotencyToken:"true"` // The identifier of the flow for initiating the chat. To see the ContactFlowId @@ -37626,7 +39284,9 @@ type StartContactStreamingInput struct { ChatStreamingConfiguration *ChatStreamingConfiguration `type:"structure" required:"true"` // A unique, case-sensitive identifier that you provide to ensure the idempotency - // of the request. + // of the request. If not provided, the Amazon Web Services SDK populates this + // field. For more information about idempotency, see Making retries safe with + // idempotent APIs (https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/). ClientToken *string `type:"string" idempotencyToken:"true"` // The identifier of the contact. This is the identifier of the contact associated @@ -37765,8 +39425,11 @@ type StartOutboundVoiceContactInput struct { CampaignId *string `min:"1" type:"string"` // A unique, case-sensitive identifier that you provide to ensure the idempotency - // of the request. The token is valid for 7 days after creation. If a contact - // is already started, the contact ID is returned. + // of the request. If not provided, the Amazon Web Services SDK populates this + // field. For more information about idempotency, see Making retries safe with + // idempotent APIs (https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/). + // The token is valid for 7 days after creation. If a contact is already started, + // the contact ID is returned. ClientToken *string `type:"string" idempotencyToken:"true"` // The identifier of the flow for the outbound call. To see the ContactFlowId @@ -37954,7 +39617,9 @@ type StartTaskContactInput struct { Attributes map[string]*string `type:"map"` // A unique, case-sensitive identifier that you provide to ensure the idempotency - // of the request. + // of the request. If not provided, the Amazon Web Services SDK populates this + // field. For more information about idempotency, see Making retries safe with + // idempotent APIs (https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/). ClientToken *string `type:"string" idempotencyToken:"true"` // The identifier of the flow for initiating the tasks. To see the ContactFlowId @@ -38453,8 +40118,9 @@ func (s StopContactStreamingOutput) GoString() string { return s.String() } -// A leaf node condition which can be used to specify a string condition, for -// example, username = 'abc'. +// A leaf node condition which can be used to specify a string condition. +// +// The currently supported value for FieldName: name type StringCondition struct { _ struct{} `type:"structure"` @@ -39197,6 +40863,63 @@ func (s *TaskTemplateMetadata) SetStatus(v string) *TaskTemplateMetadata { return s } +// The distribution of traffic between the instance and its replicas. +type TelephonyConfig struct { + _ struct{} `type:"structure"` + + // Information about traffic distributions. + // + // Distributions is a required field + Distributions []*Distribution `type:"list" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TelephonyConfig) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TelephonyConfig) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TelephonyConfig) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TelephonyConfig"} + if s.Distributions == nil { + invalidParams.Add(request.NewErrParamRequired("Distributions")) + } + if s.Distributions != nil { + for i, v := range s.Distributions { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Distributions", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDistributions sets the Distributions field's value. +func (s *TelephonyConfig) SetDistributions(v []*Distribution) *TelephonyConfig { + s.Distributions = v + return s +} + // Contains information about the threshold for service level metrics. type Threshold struct { _ struct{} `type:"structure"` @@ -39302,11 +41025,216 @@ func (s *ThrottlingException) RequestID() string { return s.RespMetadata.RequestID } +// Information about a traffic distribution group. +type TrafficDistributionGroup struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the traffic distribution group. + Arn *string `type:"string"` + + // The description of the traffic distribution group. + Description *string `min:"1" type:"string"` + + // The identifier of the traffic distribution group. This can be the ID or the + // ARN if the API is being called in the Region where the traffic distribution + // group was created. The ARN must be provided if the call is from the replicated + // Region. + Id *string `type:"string"` + + // The Amazon Resource Name (ARN). + InstanceArn *string `type:"string"` + + // The name of the traffic distribution group. + Name *string `min:"1" type:"string"` + + // The status of the traffic distribution group. + // + // * CREATION_IN_PROGRESS means the previous CreateTrafficDistributionGroup + // (https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateTrafficDistributionGroup.html) + // operation is still in progress and has not yet completed. + // + // * ACTIVE means the previous CreateTrafficDistributionGroup (https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateTrafficDistributionGroup.html) + // operation has succeeded. + // + // * CREATION_FAILED indicates that the previous CreateTrafficDistributionGroup + // (https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateTrafficDistributionGroup.html) + // operation has failed. + // + // * PENDING_DELETION means the previous DeleteTrafficDistributionGroup (https://docs.aws.amazon.com/connect/latest/APIReference/API_DeleteTrafficDistributionGroup.html) + // operation is still in progress and has not yet completed. + // + // * DELETION_FAILED means the previous DeleteTrafficDistributionGroup (https://docs.aws.amazon.com/connect/latest/APIReference/API_DeleteTrafficDistributionGroup.html) + // operation has failed. + // + // * UPDATE_IN_PROGRESS means the previous UpdateTrafficDistributionGroup + // (https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateTrafficDistributionGroup.html) + // operation is still in progress and has not yet completed. + Status *string `type:"string" enum:"TrafficDistributionGroupStatus"` + + // The tags used to organize, track, or control access for this resource. For + // example, { "tags": {"key1":"value1", "key2":"value2"} }. + Tags map[string]*string `min:"1" type:"map"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TrafficDistributionGroup) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TrafficDistributionGroup) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *TrafficDistributionGroup) SetArn(v string) *TrafficDistributionGroup { + s.Arn = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *TrafficDistributionGroup) SetDescription(v string) *TrafficDistributionGroup { + s.Description = &v + return s +} + +// SetId sets the Id field's value. +func (s *TrafficDistributionGroup) SetId(v string) *TrafficDistributionGroup { + s.Id = &v + return s +} + +// SetInstanceArn sets the InstanceArn field's value. +func (s *TrafficDistributionGroup) SetInstanceArn(v string) *TrafficDistributionGroup { + s.InstanceArn = &v + return s +} + +// SetName sets the Name field's value. +func (s *TrafficDistributionGroup) SetName(v string) *TrafficDistributionGroup { + s.Name = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *TrafficDistributionGroup) SetStatus(v string) *TrafficDistributionGroup { + s.Status = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *TrafficDistributionGroup) SetTags(v map[string]*string) *TrafficDistributionGroup { + s.Tags = v + return s +} + +// Information about traffic distribution groups. +type TrafficDistributionGroupSummary struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the traffic distribution group. + Arn *string `type:"string"` + + // The identifier of the traffic distribution group. This can be the ID or the + // ARN if the API is being called in the Region where the traffic distribution + // group was created. The ARN must be provided if the call is from the replicated + // Region. + Id *string `type:"string"` + + // The Amazon Resource Name (ARN) of the traffic distribution group. + InstanceArn *string `type:"string"` + + // The name of the traffic distribution group. + Name *string `min:"1" type:"string"` + + // The status of the traffic distribution group. + // + // * CREATION_IN_PROGRESS means the previous CreateTrafficDistributionGroup + // (https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateTrafficDistributionGroup.html) + // operation is still in progress and has not yet completed. + // + // * ACTIVE means the previous CreateTrafficDistributionGroup (https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateTrafficDistributionGroup.html) + // operation has succeeded. + // + // * CREATION_FAILED indicates that the previous CreateTrafficDistributionGroup + // (https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateTrafficDistributionGroup.html) + // operation has failed. + // + // * PENDING_DELETION means the previous DeleteTrafficDistributionGroup (https://docs.aws.amazon.com/connect/latest/APIReference/API_DeleteTrafficDistributionGroup.html) + // operation is still in progress and has not yet completed. + // + // * DELETION_FAILED means the previous DeleteTrafficDistributionGroup (https://docs.aws.amazon.com/connect/latest/APIReference/API_DeleteTrafficDistributionGroup.html) + // operation has failed. + // + // * UPDATE_IN_PROGRESS means the previous UpdateTrafficDistributionGroup + // (https://docs.aws.amazon.com/connect/latest/APIReference/API_UpdateTrafficDistributionGroup.html) + // operation is still in progress and has not yet completed. + Status *string `type:"string" enum:"TrafficDistributionGroupStatus"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TrafficDistributionGroupSummary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s TrafficDistributionGroupSummary) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *TrafficDistributionGroupSummary) SetArn(v string) *TrafficDistributionGroupSummary { + s.Arn = &v + return s +} + +// SetId sets the Id field's value. +func (s *TrafficDistributionGroupSummary) SetId(v string) *TrafficDistributionGroupSummary { + s.Id = &v + return s +} + +// SetInstanceArn sets the InstanceArn field's value. +func (s *TrafficDistributionGroupSummary) SetInstanceArn(v string) *TrafficDistributionGroupSummary { + s.InstanceArn = &v + return s +} + +// SetName sets the Name field's value. +func (s *TrafficDistributionGroupSummary) SetName(v string) *TrafficDistributionGroupSummary { + s.Name = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *TrafficDistributionGroupSummary) SetStatus(v string) *TrafficDistributionGroupSummary { + s.Status = &v + return s +} + type TransferContactInput struct { _ struct{} `type:"structure"` // A unique, case-sensitive identifier that you provide to ensure the idempotency - // of the request. + // of the request. If not provided, the Amazon Web Services SDK populates this + // field. For more information about idempotency, see Making retries safe with + // idempotent APIs (https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/). ClientToken *string `type:"string" idempotencyToken:"true"` // The identifier of the flow. @@ -40953,7 +42881,9 @@ type UpdatePhoneNumberInput struct { _ struct{} `type:"structure"` // A unique, case-sensitive identifier that you provide to ensure the idempotency - // of the request. + // of the request. If not provided, the Amazon Web Services SDK populates this + // field. For more information about idempotency, see Making retries safe with + // idempotent APIs (https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/). ClientToken *string `type:"string" idempotencyToken:"true"` // A unique identifier for the phone number. @@ -40961,8 +42891,8 @@ type UpdatePhoneNumberInput struct { // PhoneNumberId is a required field PhoneNumberId *string `location:"uri" locationName:"PhoneNumberId" type:"string" required:"true"` - // The Amazon Resource Name (ARN) for Amazon Connect instances that phone numbers - // are claimed to. + // The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution + // groups that phone numbers are claimed to. // // TargetArn is a required field TargetArn *string `type:"string" required:"true"` @@ -42656,6 +44586,94 @@ func (s *UpdateTaskTemplateOutput) SetStatus(v string) *UpdateTaskTemplateOutput return s } +type UpdateTrafficDistributionInput struct { + _ struct{} `type:"structure"` + + // The identifier of the traffic distribution group. This can be the ID or the + // ARN if the API is being called in the Region where the traffic distribution + // group was created. The ARN must be provided if the call is from the replicated + // Region. + // + // Id is a required field + Id *string `location:"uri" locationName:"Id" type:"string" required:"true"` + + // The distribution of traffic between the instance and its replica(s). + TelephonyConfig *TelephonyConfig `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateTrafficDistributionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateTrafficDistributionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateTrafficDistributionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateTrafficDistributionInput"} + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + if s.Id != nil && len(*s.Id) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Id", 1)) + } + if s.TelephonyConfig != nil { + if err := s.TelephonyConfig.Validate(); err != nil { + invalidParams.AddNested("TelephonyConfig", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetId sets the Id field's value. +func (s *UpdateTrafficDistributionInput) SetId(v string) *UpdateTrafficDistributionInput { + s.Id = &v + return s +} + +// SetTelephonyConfig sets the TelephonyConfig field's value. +func (s *UpdateTrafficDistributionInput) SetTelephonyConfig(v *TelephonyConfig) *UpdateTrafficDistributionInput { + s.TelephonyConfig = v + return s +} + +type UpdateTrafficDistributionOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateTrafficDistributionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateTrafficDistributionOutput) GoString() string { + return s.String() +} + type UpdateUserHierarchyGroupNameInput struct { _ struct{} `type:"structure"` @@ -43465,7 +45483,7 @@ func (s *UseCase) SetUseCaseType(v string) *UseCase { return s } -// Contains information about a user account for a Amazon Connect instance. +// Contains information about a user account for an Amazon Connect instance. type User struct { _ struct{} `type:"structure"` @@ -43610,8 +45628,8 @@ type UserData struct { // (CCP), or that the supervisor manually changes in the real-time metrics report. Status *AgentStatusReference `type:"structure"` - // Information about the user for the data that is returned. It contains resourceId - // and ARN of the user. + // Information about the user for the data that is returned. It contains the + // resourceId and ARN of the user. User *UserReference `type:"structure"` } @@ -43756,8 +45774,10 @@ type UserIdentityInfo struct { Mobile *string `type:"string"` // The user's secondary email address. If you provide a secondary email, the - // user receives email notifications -- other than password reset notifications - // -- to this email address instead of to their primary email address. + // user receives email notifications - other than password reset notifications + // - to this email address instead of to their primary email address. + // + // Pattern: (?=^.{0,265}$)[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,63} SecondaryEmail *string `type:"string"` } @@ -43935,6 +45955,9 @@ type UserPhoneConfig struct { _ struct{} `type:"structure"` // The After Call Work (ACW) timeout setting, in seconds. + // + // When returned by a SearchUsers call, AfterContactWorkTimeLimit is returned + // in milliseconds. AfterContactWorkTimeLimit *int64 `type:"integer"` // The Auto accept setting. @@ -46619,6 +48642,38 @@ func TaskTemplateStatus_Values() []string { } } +const ( + // TrafficDistributionGroupStatusCreationInProgress is a TrafficDistributionGroupStatus enum value + TrafficDistributionGroupStatusCreationInProgress = "CREATION_IN_PROGRESS" + + // TrafficDistributionGroupStatusActive is a TrafficDistributionGroupStatus enum value + TrafficDistributionGroupStatusActive = "ACTIVE" + + // TrafficDistributionGroupStatusCreationFailed is a TrafficDistributionGroupStatus enum value + TrafficDistributionGroupStatusCreationFailed = "CREATION_FAILED" + + // TrafficDistributionGroupStatusPendingDeletion is a TrafficDistributionGroupStatus enum value + TrafficDistributionGroupStatusPendingDeletion = "PENDING_DELETION" + + // TrafficDistributionGroupStatusDeletionFailed is a TrafficDistributionGroupStatus enum value + TrafficDistributionGroupStatusDeletionFailed = "DELETION_FAILED" + + // TrafficDistributionGroupStatusUpdateInProgress is a TrafficDistributionGroupStatus enum value + TrafficDistributionGroupStatusUpdateInProgress = "UPDATE_IN_PROGRESS" +) + +// TrafficDistributionGroupStatus_Values returns all elements of the TrafficDistributionGroupStatus enum +func TrafficDistributionGroupStatus_Values() []string { + return []string{ + TrafficDistributionGroupStatusCreationInProgress, + TrafficDistributionGroupStatusActive, + TrafficDistributionGroupStatusCreationFailed, + TrafficDistributionGroupStatusPendingDeletion, + TrafficDistributionGroupStatusDeletionFailed, + TrafficDistributionGroupStatusUpdateInProgress, + } +} + const ( // TrafficTypeGeneral is a TrafficType enum value TrafficTypeGeneral = "GENERAL" diff --git a/service/connect/connectiface/interface.go b/service/connect/connectiface/interface.go index 16b16b8d72..74c576af6a 100644 --- a/service/connect/connectiface/interface.go +++ b/service/connect/connectiface/interface.go @@ -148,6 +148,10 @@ type ConnectAPI interface { CreateTaskTemplateWithContext(aws.Context, *connect.CreateTaskTemplateInput, ...request.Option) (*connect.CreateTaskTemplateOutput, error) CreateTaskTemplateRequest(*connect.CreateTaskTemplateInput) (*request.Request, *connect.CreateTaskTemplateOutput) + CreateTrafficDistributionGroup(*connect.CreateTrafficDistributionGroupInput) (*connect.CreateTrafficDistributionGroupOutput, error) + CreateTrafficDistributionGroupWithContext(aws.Context, *connect.CreateTrafficDistributionGroupInput, ...request.Option) (*connect.CreateTrafficDistributionGroupOutput, error) + CreateTrafficDistributionGroupRequest(*connect.CreateTrafficDistributionGroupInput) (*request.Request, *connect.CreateTrafficDistributionGroupOutput) + CreateUseCase(*connect.CreateUseCaseInput) (*connect.CreateUseCaseOutput, error) CreateUseCaseWithContext(aws.Context, *connect.CreateUseCaseInput, ...request.Option) (*connect.CreateUseCaseOutput, error) CreateUseCaseRequest(*connect.CreateUseCaseInput) (*request.Request, *connect.CreateUseCaseOutput) @@ -196,6 +200,10 @@ type ConnectAPI interface { DeleteTaskTemplateWithContext(aws.Context, *connect.DeleteTaskTemplateInput, ...request.Option) (*connect.DeleteTaskTemplateOutput, error) DeleteTaskTemplateRequest(*connect.DeleteTaskTemplateInput) (*request.Request, *connect.DeleteTaskTemplateOutput) + DeleteTrafficDistributionGroup(*connect.DeleteTrafficDistributionGroupInput) (*connect.DeleteTrafficDistributionGroupOutput, error) + DeleteTrafficDistributionGroupWithContext(aws.Context, *connect.DeleteTrafficDistributionGroupInput, ...request.Option) (*connect.DeleteTrafficDistributionGroupOutput, error) + DeleteTrafficDistributionGroupRequest(*connect.DeleteTrafficDistributionGroupInput) (*request.Request, *connect.DeleteTrafficDistributionGroupOutput) + DeleteUseCase(*connect.DeleteUseCaseInput) (*connect.DeleteUseCaseOutput, error) DeleteUseCaseWithContext(aws.Context, *connect.DeleteUseCaseInput, ...request.Option) (*connect.DeleteUseCaseOutput, error) DeleteUseCaseRequest(*connect.DeleteUseCaseInput) (*request.Request, *connect.DeleteUseCaseOutput) @@ -264,6 +272,10 @@ type ConnectAPI interface { DescribeSecurityProfileWithContext(aws.Context, *connect.DescribeSecurityProfileInput, ...request.Option) (*connect.DescribeSecurityProfileOutput, error) DescribeSecurityProfileRequest(*connect.DescribeSecurityProfileInput) (*request.Request, *connect.DescribeSecurityProfileOutput) + DescribeTrafficDistributionGroup(*connect.DescribeTrafficDistributionGroupInput) (*connect.DescribeTrafficDistributionGroupOutput, error) + DescribeTrafficDistributionGroupWithContext(aws.Context, *connect.DescribeTrafficDistributionGroupInput, ...request.Option) (*connect.DescribeTrafficDistributionGroupOutput, error) + DescribeTrafficDistributionGroupRequest(*connect.DescribeTrafficDistributionGroupInput) (*request.Request, *connect.DescribeTrafficDistributionGroupOutput) + DescribeUser(*connect.DescribeUserInput) (*connect.DescribeUserOutput, error) DescribeUserWithContext(aws.Context, *connect.DescribeUserInput, ...request.Option) (*connect.DescribeUserOutput, error) DescribeUserRequest(*connect.DescribeUserInput) (*request.Request, *connect.DescribeUserOutput) @@ -349,6 +361,10 @@ type ConnectAPI interface { GetTaskTemplateWithContext(aws.Context, *connect.GetTaskTemplateInput, ...request.Option) (*connect.GetTaskTemplateOutput, error) GetTaskTemplateRequest(*connect.GetTaskTemplateInput) (*request.Request, *connect.GetTaskTemplateOutput) + GetTrafficDistribution(*connect.GetTrafficDistributionInput) (*connect.GetTrafficDistributionOutput, error) + GetTrafficDistributionWithContext(aws.Context, *connect.GetTrafficDistributionInput, ...request.Option) (*connect.GetTrafficDistributionOutput, error) + GetTrafficDistributionRequest(*connect.GetTrafficDistributionInput) (*request.Request, *connect.GetTrafficDistributionOutput) + ListAgentStatuses(*connect.ListAgentStatusesInput) (*connect.ListAgentStatusesOutput, error) ListAgentStatusesWithContext(aws.Context, *connect.ListAgentStatusesInput, ...request.Option) (*connect.ListAgentStatusesOutput, error) ListAgentStatusesRequest(*connect.ListAgentStatusesInput) (*request.Request, *connect.ListAgentStatusesOutput) @@ -535,6 +551,13 @@ type ConnectAPI interface { ListTaskTemplatesPages(*connect.ListTaskTemplatesInput, func(*connect.ListTaskTemplatesOutput, bool) bool) error ListTaskTemplatesPagesWithContext(aws.Context, *connect.ListTaskTemplatesInput, func(*connect.ListTaskTemplatesOutput, bool) bool, ...request.Option) error + ListTrafficDistributionGroups(*connect.ListTrafficDistributionGroupsInput) (*connect.ListTrafficDistributionGroupsOutput, error) + ListTrafficDistributionGroupsWithContext(aws.Context, *connect.ListTrafficDistributionGroupsInput, ...request.Option) (*connect.ListTrafficDistributionGroupsOutput, error) + ListTrafficDistributionGroupsRequest(*connect.ListTrafficDistributionGroupsInput) (*request.Request, *connect.ListTrafficDistributionGroupsOutput) + + ListTrafficDistributionGroupsPages(*connect.ListTrafficDistributionGroupsInput, func(*connect.ListTrafficDistributionGroupsOutput, bool) bool) error + ListTrafficDistributionGroupsPagesWithContext(aws.Context, *connect.ListTrafficDistributionGroupsInput, func(*connect.ListTrafficDistributionGroupsOutput, bool) bool, ...request.Option) error + ListUseCases(*connect.ListUseCasesInput) (*connect.ListUseCasesOutput, error) ListUseCasesWithContext(aws.Context, *connect.ListUseCasesInput, ...request.Option) (*connect.ListUseCasesOutput, error) ListUseCasesRequest(*connect.ListUseCasesInput) (*request.Request, *connect.ListUseCasesOutput) @@ -564,6 +587,10 @@ type ConnectAPI interface { ReleasePhoneNumberWithContext(aws.Context, *connect.ReleasePhoneNumberInput, ...request.Option) (*connect.ReleasePhoneNumberOutput, error) ReleasePhoneNumberRequest(*connect.ReleasePhoneNumberInput) (*request.Request, *connect.ReleasePhoneNumberOutput) + ReplicateInstance(*connect.ReplicateInstanceInput) (*connect.ReplicateInstanceOutput, error) + ReplicateInstanceWithContext(aws.Context, *connect.ReplicateInstanceInput, ...request.Option) (*connect.ReplicateInstanceOutput, error) + ReplicateInstanceRequest(*connect.ReplicateInstanceInput) (*request.Request, *connect.ReplicateInstanceOutput) + ResumeContactRecording(*connect.ResumeContactRecordingInput) (*connect.ResumeContactRecordingOutput, error) ResumeContactRecordingWithContext(aws.Context, *connect.ResumeContactRecordingInput, ...request.Option) (*connect.ResumeContactRecordingOutput, error) ResumeContactRecordingRequest(*connect.ResumeContactRecordingInput) (*request.Request, *connect.ResumeContactRecordingOutput) @@ -762,6 +789,10 @@ type ConnectAPI interface { UpdateTaskTemplateWithContext(aws.Context, *connect.UpdateTaskTemplateInput, ...request.Option) (*connect.UpdateTaskTemplateOutput, error) UpdateTaskTemplateRequest(*connect.UpdateTaskTemplateInput) (*request.Request, *connect.UpdateTaskTemplateOutput) + UpdateTrafficDistribution(*connect.UpdateTrafficDistributionInput) (*connect.UpdateTrafficDistributionOutput, error) + UpdateTrafficDistributionWithContext(aws.Context, *connect.UpdateTrafficDistributionInput, ...request.Option) (*connect.UpdateTrafficDistributionOutput, error) + UpdateTrafficDistributionRequest(*connect.UpdateTrafficDistributionInput) (*request.Request, *connect.UpdateTrafficDistributionOutput) + UpdateUserHierarchy(*connect.UpdateUserHierarchyInput) (*connect.UpdateUserHierarchyOutput, error) UpdateUserHierarchyWithContext(aws.Context, *connect.UpdateUserHierarchyInput, ...request.Option) (*connect.UpdateUserHierarchyOutput, error) UpdateUserHierarchyRequest(*connect.UpdateUserHierarchyInput) (*request.Request, *connect.UpdateUserHierarchyOutput) diff --git a/service/connect/errors.go b/service/connect/errors.go index 190a88b573..f6ea0396d5 100644 --- a/service/connect/errors.go +++ b/service/connect/errors.go @@ -110,6 +110,12 @@ const ( // The specified resource was not found. ErrCodeResourceNotFoundException = "ResourceNotFoundException" + // ErrCodeResourceNotReadyException for service response error code + // "ResourceNotReadyException". + // + // The resource is not ready. + ErrCodeResourceNotReadyException = "ResourceNotReadyException" + // ErrCodeServiceQuotaExceededException for service response error code // "ServiceQuotaExceededException". // @@ -147,6 +153,7 @@ var exceptionFromCode = map[string]func(protocol.ResponseMetadata) error{ "ResourceConflictException": newErrorResourceConflictException, "ResourceInUseException": newErrorResourceInUseException, "ResourceNotFoundException": newErrorResourceNotFoundException, + "ResourceNotReadyException": newErrorResourceNotReadyException, "ServiceQuotaExceededException": newErrorServiceQuotaExceededException, "ThrottlingException": newErrorThrottlingException, "UserNotFoundException": newErrorUserNotFoundException, diff --git a/service/managedblockchain/api.go b/service/managedblockchain/api.go index 8d65cea322..b74678f35c 100644 --- a/service/managedblockchain/api.go +++ b/service/managedblockchain/api.go @@ -13,6 +13,113 @@ import ( "github.com/aws/aws-sdk-go/private/protocol/restjson" ) +const opCreateAccessor = "CreateAccessor" + +// CreateAccessorRequest generates a "aws/request.Request" representing the +// client's request for the CreateAccessor 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 CreateAccessor for more information on using the CreateAccessor +// 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 CreateAccessorRequest method. +// req, resp := client.CreateAccessorRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/managedblockchain-2018-09-24/CreateAccessor +func (c *ManagedBlockchain) CreateAccessorRequest(input *CreateAccessorInput) (req *request.Request, output *CreateAccessorOutput) { + op := &request.Operation{ + Name: opCreateAccessor, + HTTPMethod: "POST", + HTTPPath: "/accessors", + } + + if input == nil { + input = &CreateAccessorInput{} + } + + output = &CreateAccessorOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateAccessor API operation for Amazon Managed Blockchain. +// +// The token based access feature is in preview release for Ethereum on Amazon +// Managed Blockchain and is subject to change. We recommend that you use this +// feature only with test scenarios, and not in production environments. +// +// Creates a new accessor for use with Managed Blockchain Ethereum nodes. An +// accessor object is a container that has the information required for token +// based access to your Ethereum nodes. +// +// 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 Managed Blockchain's +// API operation CreateAccessor for usage and error information. +// +// Returned Error Types: +// +// - InvalidRequestException +// The action or operation requested is invalid. Verify that the action is typed +// correctly. +// +// - AccessDeniedException +// You don't have sufficient access to perform this action. +// +// - ResourceAlreadyExistsException +// A resource request is issued for a resource that already exists. +// +// - ThrottlingException +// The request or operation couldn't be performed because a service is throttling +// requests. The most common source of throttling errors is creating resources +// that exceed your service limit for this resource type. Request a limit increase +// or delete unused resources if possible. +// +// - ResourceLimitExceededException +// The maximum number of resources of that type already exist. Ensure the resources +// requested are within the boundaries of the service edition and your account +// limits. +// +// - InternalServiceErrorException +// The request processing has failed because of an unknown error, exception +// or failure. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/managedblockchain-2018-09-24/CreateAccessor +func (c *ManagedBlockchain) CreateAccessor(input *CreateAccessorInput) (*CreateAccessorOutput, error) { + req, out := c.CreateAccessorRequest(input) + return out, req.Send() +} + +// CreateAccessorWithContext is the same as CreateAccessor with the addition of +// the ability to pass a context and additional request options. +// +// See CreateAccessor 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 *ManagedBlockchain) CreateAccessorWithContext(ctx aws.Context, input *CreateAccessorInput, opts ...request.Option) (*CreateAccessorOutput, error) { + req, out := c.CreateAccessorRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCreateMember = "CreateMember" // CreateMemberRequest generates a "aws/request.Request" representing the @@ -74,24 +181,24 @@ func (c *ManagedBlockchain) CreateMemberRequest(input *CreateMemberInput) (req * // correctly. // // - AccessDeniedException -// You do not have sufficient access to perform this action. +// You don't have sufficient access to perform this action. // // - ResourceNotFoundException -// A requested resource does not exist. It may have been deleted or referenced -// inaccurately. +// A requested resource doesn't exist. It may have been deleted or referenced +// incorrectly. // // - ResourceAlreadyExistsException // A resource request is issued for a resource that already exists. // // - ResourceNotReadyException -// The requested resource exists but is not in a status that can complete the +// The requested resource exists but isn't in a status that can complete the // operation. // // - ThrottlingException -// The request or operation could not be performed because a service is throttling -// requests. The most common source of throttling errors is launching EC2 instances -// such that your service limit for EC2 instances is exceeded. Request a limit -// increase or delete unused resources if possible. +// The request or operation couldn't be performed because a service is throttling +// requests. The most common source of throttling errors is creating resources +// that exceed your service limit for this resource type. Request a limit increase +// or delete unused resources if possible. // // - ResourceLimitExceededException // The maximum number of resources of that type already exist. Ensure the resources @@ -187,16 +294,16 @@ func (c *ManagedBlockchain) CreateNetworkRequest(input *CreateNetworkInput) (req // correctly. // // - AccessDeniedException -// You do not have sufficient access to perform this action. +// You don't have sufficient access to perform this action. // // - ResourceAlreadyExistsException // A resource request is issued for a resource that already exists. // // - ThrottlingException -// The request or operation could not be performed because a service is throttling -// requests. The most common source of throttling errors is launching EC2 instances -// such that your service limit for EC2 instances is exceeded. Request a limit -// increase or delete unused resources if possible. +// The request or operation couldn't be performed because a service is throttling +// requests. The most common source of throttling errors is creating resources +// that exceed your service limit for this resource type. Request a limit increase +// or delete unused resources if possible. // // - ResourceLimitExceededException // The maximum number of resources of that type already exist. Ensure the resources @@ -292,24 +399,24 @@ func (c *ManagedBlockchain) CreateNodeRequest(input *CreateNodeInput) (req *requ // correctly. // // - AccessDeniedException -// You do not have sufficient access to perform this action. +// You don't have sufficient access to perform this action. // // - ResourceNotFoundException -// A requested resource does not exist. It may have been deleted or referenced -// inaccurately. +// A requested resource doesn't exist. It may have been deleted or referenced +// incorrectly. // // - ResourceAlreadyExistsException // A resource request is issued for a resource that already exists. // // - ResourceNotReadyException -// The requested resource exists but is not in a status that can complete the +// The requested resource exists but isn't in a status that can complete the // operation. // // - ThrottlingException -// The request or operation could not be performed because a service is throttling -// requests. The most common source of throttling errors is launching EC2 instances -// such that your service limit for EC2 instances is exceeded. Request a limit -// increase or delete unused resources if possible. +// The request or operation couldn't be performed because a service is throttling +// requests. The most common source of throttling errors is creating resources +// that exceed your service limit for this resource type. Request a limit increase +// or delete unused resources if possible. // // - ResourceLimitExceededException // The maximum number of resources of that type already exist. Ensure the resources @@ -407,21 +514,21 @@ func (c *ManagedBlockchain) CreateProposalRequest(input *CreateProposalInput) (r // correctly. // // - AccessDeniedException -// You do not have sufficient access to perform this action. +// You don't have sufficient access to perform this action. // // - ResourceNotFoundException -// A requested resource does not exist. It may have been deleted or referenced -// inaccurately. +// A requested resource doesn't exist. It may have been deleted or referenced +// incorrectly. // // - ResourceNotReadyException -// The requested resource exists but is not in a status that can complete the +// The requested resource exists but isn't in a status that can complete the // operation. // // - ThrottlingException -// The request or operation could not be performed because a service is throttling -// requests. The most common source of throttling errors is launching EC2 instances -// such that your service limit for EC2 instances is exceeded. Request a limit -// increase or delete unused resources if possible. +// The request or operation couldn't be performed because a service is throttling +// requests. The most common source of throttling errors is creating resources +// that exceed your service limit for this resource type. Request a limit increase +// or delete unused resources if possible. // // - InternalServiceErrorException // The request processing has failed because of an unknown error, exception @@ -451,6 +558,115 @@ func (c *ManagedBlockchain) CreateProposalWithContext(ctx aws.Context, input *Cr return out, req.Send() } +const opDeleteAccessor = "DeleteAccessor" + +// DeleteAccessorRequest generates a "aws/request.Request" representing the +// client's request for the DeleteAccessor 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 DeleteAccessor for more information on using the DeleteAccessor +// 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 DeleteAccessorRequest method. +// req, resp := client.DeleteAccessorRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/managedblockchain-2018-09-24/DeleteAccessor +func (c *ManagedBlockchain) DeleteAccessorRequest(input *DeleteAccessorInput) (req *request.Request, output *DeleteAccessorOutput) { + op := &request.Operation{ + Name: opDeleteAccessor, + HTTPMethod: "DELETE", + HTTPPath: "/accessors/{AccessorId}", + } + + if input == nil { + input = &DeleteAccessorInput{} + } + + output = &DeleteAccessorOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteAccessor API operation for Amazon Managed Blockchain. +// +// The token based access feature is in preview release for Ethereum on Amazon +// Managed Blockchain and is subject to change. We recommend that you use this +// feature only with test scenarios, and not in production environments. +// +// Deletes an accessor that your Amazon Web Services account owns. An accessor +// object is a container that has the information required for token based access +// to your Ethereum nodes including, the BILLING_TOKEN. After an accessor is +// deleted, the status of the accessor changes from AVAILABLE to PENDING_DELETION. +// An accessor in the PENDING_DELETION state can’t be used for new WebSocket +// requests or HTTP requests. However, WebSocket connections that are initiated +// while the accessor was in the AVAILABLE state remain open until they expire +// (up to 2 hours). +// +// 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 Managed Blockchain's +// API operation DeleteAccessor for usage and error information. +// +// Returned Error Types: +// +// - InvalidRequestException +// The action or operation requested is invalid. Verify that the action is typed +// correctly. +// +// - AccessDeniedException +// You don't have sufficient access to perform this action. +// +// - ResourceNotFoundException +// A requested resource doesn't exist. It may have been deleted or referenced +// incorrectly. +// +// - ThrottlingException +// The request or operation couldn't be performed because a service is throttling +// requests. The most common source of throttling errors is creating resources +// that exceed your service limit for this resource type. Request a limit increase +// or delete unused resources if possible. +// +// - InternalServiceErrorException +// The request processing has failed because of an unknown error, exception +// or failure. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/managedblockchain-2018-09-24/DeleteAccessor +func (c *ManagedBlockchain) DeleteAccessor(input *DeleteAccessorInput) (*DeleteAccessorOutput, error) { + req, out := c.DeleteAccessorRequest(input) + return out, req.Send() +} + +// DeleteAccessorWithContext is the same as DeleteAccessor with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteAccessor 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 *ManagedBlockchain) DeleteAccessorWithContext(ctx aws.Context, input *DeleteAccessorInput, opts ...request.Option) (*DeleteAccessorOutput, error) { + req, out := c.DeleteAccessorRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteMember = "DeleteMember" // DeleteMemberRequest generates a "aws/request.Request" representing the @@ -497,11 +713,11 @@ func (c *ManagedBlockchain) DeleteMemberRequest(input *DeleteMemberInput) (req * // // Deletes a member. Deleting a member removes the member and all associated // resources from the network. DeleteMember can only be called for a specified -// MemberId if the principal performing the action is associated with the AWS -// account that owns the member. In all other cases, the DeleteMember action -// is carried out as the result of an approved proposal to remove a member. -// If MemberId is the last member in a network specified by the last AWS account, -// the network is deleted also. +// MemberId if the principal performing the action is associated with the Amazon +// Web Services account that owns the member. In all other cases, the DeleteMember +// action is carried out as the result of an approved proposal to remove a member. +// If MemberId is the last member in a network specified by the last Amazon +// Web Services account, the network is deleted also. // // Applies only to Hyperledger Fabric. // @@ -519,21 +735,21 @@ func (c *ManagedBlockchain) DeleteMemberRequest(input *DeleteMemberInput) (req * // correctly. // // - AccessDeniedException -// You do not have sufficient access to perform this action. +// You don't have sufficient access to perform this action. // // - ResourceNotFoundException -// A requested resource does not exist. It may have been deleted or referenced -// inaccurately. +// A requested resource doesn't exist. It may have been deleted or referenced +// incorrectly. // // - ResourceNotReadyException -// The requested resource exists but is not in a status that can complete the +// The requested resource exists but isn't in a status that can complete the // operation. // // - ThrottlingException -// The request or operation could not be performed because a service is throttling -// requests. The most common source of throttling errors is launching EC2 instances -// such that your service limit for EC2 instances is exceeded. Request a limit -// increase or delete unused resources if possible. +// The request or operation couldn't be performed because a service is throttling +// requests. The most common source of throttling errors is creating resources +// that exceed your service limit for this resource type. Request a limit increase +// or delete unused resources if possible. // // - InternalServiceErrorException // The request processing has failed because of an unknown error, exception @@ -605,8 +821,8 @@ func (c *ManagedBlockchain) DeleteNodeRequest(input *DeleteNodeInput) (req *requ // DeleteNode API operation for Amazon Managed Blockchain. // -// Deletes a node that your AWS account owns. All data on the node is lost and -// cannot be recovered. +// Deletes a node that your Amazon Web Services account owns. All data on the +// node is lost and cannot be recovered. // // Applies to Hyperledger Fabric and Ethereum. // @@ -624,21 +840,21 @@ func (c *ManagedBlockchain) DeleteNodeRequest(input *DeleteNodeInput) (req *requ // correctly. // // - AccessDeniedException -// You do not have sufficient access to perform this action. +// You don't have sufficient access to perform this action. // // - ResourceNotFoundException -// A requested resource does not exist. It may have been deleted or referenced -// inaccurately. +// A requested resource doesn't exist. It may have been deleted or referenced +// incorrectly. // // - ResourceNotReadyException -// The requested resource exists but is not in a status that can complete the +// The requested resource exists but isn't in a status that can complete the // operation. // // - ThrottlingException -// The request or operation could not be performed because a service is throttling -// requests. The most common source of throttling errors is launching EC2 instances -// such that your service limit for EC2 instances is exceeded. Request a limit -// increase or delete unused resources if possible. +// The request or operation couldn't be performed because a service is throttling +// requests. The most common source of throttling errors is creating resources +// that exceed your service limit for this resource type. Request a limit increase +// or delete unused resources if possible. // // - InternalServiceErrorException // The request processing has failed because of an unknown error, exception @@ -666,6 +882,109 @@ func (c *ManagedBlockchain) DeleteNodeWithContext(ctx aws.Context, input *Delete return out, req.Send() } +const opGetAccessor = "GetAccessor" + +// GetAccessorRequest generates a "aws/request.Request" representing the +// client's request for the GetAccessor 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 GetAccessor for more information on using the GetAccessor +// 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 GetAccessorRequest method. +// req, resp := client.GetAccessorRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/managedblockchain-2018-09-24/GetAccessor +func (c *ManagedBlockchain) GetAccessorRequest(input *GetAccessorInput) (req *request.Request, output *GetAccessorOutput) { + op := &request.Operation{ + Name: opGetAccessor, + HTTPMethod: "GET", + HTTPPath: "/accessors/{AccessorId}", + } + + if input == nil { + input = &GetAccessorInput{} + } + + output = &GetAccessorOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetAccessor API operation for Amazon Managed Blockchain. +// +// The token based access feature is in preview release for Ethereum on Amazon +// Managed Blockchain and is subject to change. We recommend that you use this +// feature only with test scenarios, and not in production environments. +// +// Returns detailed information about an accessor. An accessor object is a container +// that has the information required for token based access to your Ethereum +// nodes. +// +// 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 Managed Blockchain's +// API operation GetAccessor for usage and error information. +// +// Returned Error Types: +// +// - InvalidRequestException +// The action or operation requested is invalid. Verify that the action is typed +// correctly. +// +// - AccessDeniedException +// You don't have sufficient access to perform this action. +// +// - ResourceNotFoundException +// A requested resource doesn't exist. It may have been deleted or referenced +// incorrectly. +// +// - ThrottlingException +// The request or operation couldn't be performed because a service is throttling +// requests. The most common source of throttling errors is creating resources +// that exceed your service limit for this resource type. Request a limit increase +// or delete unused resources if possible. +// +// - InternalServiceErrorException +// The request processing has failed because of an unknown error, exception +// or failure. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/managedblockchain-2018-09-24/GetAccessor +func (c *ManagedBlockchain) GetAccessor(input *GetAccessorInput) (*GetAccessorOutput, error) { + req, out := c.GetAccessorRequest(input) + return out, req.Send() +} + +// GetAccessorWithContext is the same as GetAccessor with the addition of +// the ability to pass a context and additional request options. +// +// See GetAccessor 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 *ManagedBlockchain) GetAccessorWithContext(ctx aws.Context, input *GetAccessorInput, opts ...request.Option) (*GetAccessorOutput, error) { + req, out := c.GetAccessorRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetMember = "GetMember" // GetMemberRequest generates a "aws/request.Request" representing the @@ -727,17 +1046,17 @@ func (c *ManagedBlockchain) GetMemberRequest(input *GetMemberInput) (req *reques // correctly. // // - AccessDeniedException -// You do not have sufficient access to perform this action. +// You don't have sufficient access to perform this action. // // - ResourceNotFoundException -// A requested resource does not exist. It may have been deleted or referenced -// inaccurately. +// A requested resource doesn't exist. It may have been deleted or referenced +// incorrectly. // // - ThrottlingException -// The request or operation could not be performed because a service is throttling -// requests. The most common source of throttling errors is launching EC2 instances -// such that your service limit for EC2 instances is exceeded. Request a limit -// increase or delete unused resources if possible. +// The request or operation couldn't be performed because a service is throttling +// requests. The most common source of throttling errors is creating resources +// that exceed your service limit for this resource type. Request a limit increase +// or delete unused resources if possible. // // - InternalServiceErrorException // The request processing has failed because of an unknown error, exception @@ -826,17 +1145,17 @@ func (c *ManagedBlockchain) GetNetworkRequest(input *GetNetworkInput) (req *requ // correctly. // // - AccessDeniedException -// You do not have sufficient access to perform this action. +// You don't have sufficient access to perform this action. // // - ResourceNotFoundException -// A requested resource does not exist. It may have been deleted or referenced -// inaccurately. +// A requested resource doesn't exist. It may have been deleted or referenced +// incorrectly. // // - ThrottlingException -// The request or operation could not be performed because a service is throttling -// requests. The most common source of throttling errors is launching EC2 instances -// such that your service limit for EC2 instances is exceeded. Request a limit -// increase or delete unused resources if possible. +// The request or operation couldn't be performed because a service is throttling +// requests. The most common source of throttling errors is creating resources +// that exceed your service limit for this resource type. Request a limit increase +// or delete unused resources if possible. // // - InternalServiceErrorException // The request processing has failed because of an unknown error, exception @@ -925,17 +1244,17 @@ func (c *ManagedBlockchain) GetNodeRequest(input *GetNodeInput) (req *request.Re // correctly. // // - AccessDeniedException -// You do not have sufficient access to perform this action. +// You don't have sufficient access to perform this action. // // - ResourceNotFoundException -// A requested resource does not exist. It may have been deleted or referenced -// inaccurately. +// A requested resource doesn't exist. It may have been deleted or referenced +// incorrectly. // // - ThrottlingException -// The request or operation could not be performed because a service is throttling -// requests. The most common source of throttling errors is launching EC2 instances -// such that your service limit for EC2 instances is exceeded. Request a limit -// increase or delete unused resources if possible. +// The request or operation couldn't be performed because a service is throttling +// requests. The most common source of throttling errors is creating resources +// that exceed your service limit for this resource type. Request a limit increase +// or delete unused resources if possible. // // - InternalServiceErrorException // The request processing has failed because of an unknown error, exception @@ -1024,17 +1343,17 @@ func (c *ManagedBlockchain) GetProposalRequest(input *GetProposalInput) (req *re // correctly. // // - AccessDeniedException -// You do not have sufficient access to perform this action. +// You don't have sufficient access to perform this action. // // - ResourceNotFoundException -// A requested resource does not exist. It may have been deleted or referenced -// inaccurately. +// A requested resource doesn't exist. It may have been deleted or referenced +// incorrectly. // // - ThrottlingException -// The request or operation could not be performed because a service is throttling -// requests. The most common source of throttling errors is launching EC2 instances -// such that your service limit for EC2 instances is exceeded. Request a limit -// increase or delete unused resources if possible. +// The request or operation couldn't be performed because a service is throttling +// requests. The most common source of throttling errors is creating resources +// that exceed your service limit for this resource type. Request a limit increase +// or delete unused resources if possible. // // - InternalServiceErrorException // The request processing has failed because of an unknown error, exception @@ -1046,22 +1365,178 @@ func (c *ManagedBlockchain) GetProposal(input *GetProposalInput) (*GetProposalOu return out, req.Send() } -// GetProposalWithContext is the same as GetProposal with the addition of +// GetProposalWithContext is the same as GetProposal with the addition of +// the ability to pass a context and additional request options. +// +// See GetProposal 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 *ManagedBlockchain) GetProposalWithContext(ctx aws.Context, input *GetProposalInput, opts ...request.Option) (*GetProposalOutput, error) { + req, out := c.GetProposalRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListAccessors = "ListAccessors" + +// ListAccessorsRequest generates a "aws/request.Request" representing the +// client's request for the ListAccessors 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 ListAccessors for more information on using the ListAccessors +// 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 ListAccessorsRequest method. +// req, resp := client.ListAccessorsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/managedblockchain-2018-09-24/ListAccessors +func (c *ManagedBlockchain) ListAccessorsRequest(input *ListAccessorsInput) (req *request.Request, output *ListAccessorsOutput) { + op := &request.Operation{ + Name: opListAccessors, + HTTPMethod: "GET", + HTTPPath: "/accessors", + Paginator: &request.Paginator{ + InputTokens: []string{"NextToken"}, + OutputTokens: []string{"NextToken"}, + LimitToken: "MaxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListAccessorsInput{} + } + + output = &ListAccessorsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListAccessors API operation for Amazon Managed Blockchain. +// +// The token based access feature is in preview release for Ethereum on Amazon +// Managed Blockchain and is subject to change. We recommend that you use this +// feature only with test scenarios, and not in production environments. +// +// Returns a list of the accessors and their properties. Accessor objects are +// containers that have the information required for token based access to your +// Ethereum nodes. +// +// 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 Managed Blockchain's +// API operation ListAccessors for usage and error information. +// +// Returned Error Types: +// +// - InvalidRequestException +// The action or operation requested is invalid. Verify that the action is typed +// correctly. +// +// - AccessDeniedException +// You don't have sufficient access to perform this action. +// +// - ThrottlingException +// The request or operation couldn't be performed because a service is throttling +// requests. The most common source of throttling errors is creating resources +// that exceed your service limit for this resource type. Request a limit increase +// or delete unused resources if possible. +// +// - InternalServiceErrorException +// The request processing has failed because of an unknown error, exception +// or failure. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/managedblockchain-2018-09-24/ListAccessors +func (c *ManagedBlockchain) ListAccessors(input *ListAccessorsInput) (*ListAccessorsOutput, error) { + req, out := c.ListAccessorsRequest(input) + return out, req.Send() +} + +// ListAccessorsWithContext is the same as ListAccessors with the addition of // the ability to pass a context and additional request options. // -// See GetProposal for details on how to use this API operation. +// See ListAccessors 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 *ManagedBlockchain) GetProposalWithContext(ctx aws.Context, input *GetProposalInput, opts ...request.Option) (*GetProposalOutput, error) { - req, out := c.GetProposalRequest(input) +func (c *ManagedBlockchain) ListAccessorsWithContext(ctx aws.Context, input *ListAccessorsInput, opts ...request.Option) (*ListAccessorsOutput, error) { + req, out := c.ListAccessorsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } +// ListAccessorsPages iterates over the pages of a ListAccessors operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListAccessors 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 ListAccessors operation. +// pageNum := 0 +// err := client.ListAccessorsPages(params, +// func(page *managedblockchain.ListAccessorsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *ManagedBlockchain) ListAccessorsPages(input *ListAccessorsInput, fn func(*ListAccessorsOutput, bool) bool) error { + return c.ListAccessorsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListAccessorsPagesWithContext same as ListAccessorsPages 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 *ManagedBlockchain) ListAccessorsPagesWithContext(ctx aws.Context, input *ListAccessorsInput, fn func(*ListAccessorsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListAccessorsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListAccessorsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListAccessorsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + const opListInvitations = "ListInvitations" // ListInvitationsRequest generates a "aws/request.Request" representing the @@ -1111,7 +1586,7 @@ func (c *ManagedBlockchain) ListInvitationsRequest(input *ListInvitationsInput) // ListInvitations API operation for Amazon Managed Blockchain. // -// Returns a list of all invitations for the current AWS account. +// Returns a list of all invitations for the current Amazon Web Services account. // // Applies only to Hyperledger Fabric. // @@ -1129,17 +1604,17 @@ func (c *ManagedBlockchain) ListInvitationsRequest(input *ListInvitationsInput) // correctly. // // - AccessDeniedException -// You do not have sufficient access to perform this action. +// You don't have sufficient access to perform this action. // // - ResourceNotFoundException -// A requested resource does not exist. It may have been deleted or referenced -// inaccurately. +// A requested resource doesn't exist. It may have been deleted or referenced +// incorrectly. // // - ThrottlingException -// The request or operation could not be performed because a service is throttling -// requests. The most common source of throttling errors is launching EC2 instances -// such that your service limit for EC2 instances is exceeded. Request a limit -// increase or delete unused resources if possible. +// The request or operation couldn't be performed because a service is throttling +// requests. The most common source of throttling errors is creating resources +// that exceed your service limit for this resource type. Request a limit increase +// or delete unused resources if possible. // // - ResourceLimitExceededException // The maximum number of resources of that type already exist. Ensure the resources @@ -1290,13 +1765,13 @@ func (c *ManagedBlockchain) ListMembersRequest(input *ListMembersInput) (req *re // correctly. // // - AccessDeniedException -// You do not have sufficient access to perform this action. +// You don't have sufficient access to perform this action. // // - ThrottlingException -// The request or operation could not be performed because a service is throttling -// requests. The most common source of throttling errors is launching EC2 instances -// such that your service limit for EC2 instances is exceeded. Request a limit -// increase or delete unused resources if possible. +// The request or operation couldn't be performed because a service is throttling +// requests. The most common source of throttling errors is creating resources +// that exceed your service limit for this resource type. Request a limit increase +// or delete unused resources if possible. // // - InternalServiceErrorException // The request processing has failed because of an unknown error, exception @@ -1424,7 +1899,8 @@ func (c *ManagedBlockchain) ListNetworksRequest(input *ListNetworksInput) (req * // ListNetworks API operation for Amazon Managed Blockchain. // -// Returns information about the networks in which the current AWS account participates. +// Returns information about the networks in which the current Amazon Web Services +// account participates. // // Applies to Hyperledger Fabric and Ethereum. // @@ -1442,13 +1918,13 @@ func (c *ManagedBlockchain) ListNetworksRequest(input *ListNetworksInput) (req * // correctly. // // - AccessDeniedException -// You do not have sufficient access to perform this action. +// You don't have sufficient access to perform this action. // // - ThrottlingException -// The request or operation could not be performed because a service is throttling -// requests. The most common source of throttling errors is launching EC2 instances -// such that your service limit for EC2 instances is exceeded. Request a limit -// increase or delete unused resources if possible. +// The request or operation couldn't be performed because a service is throttling +// requests. The most common source of throttling errors is creating resources +// that exceed your service limit for this resource type. Request a limit increase +// or delete unused resources if possible. // // - InternalServiceErrorException // The request processing has failed because of an unknown error, exception @@ -1594,13 +2070,13 @@ func (c *ManagedBlockchain) ListNodesRequest(input *ListNodesInput) (req *reques // correctly. // // - AccessDeniedException -// You do not have sufficient access to perform this action. +// You don't have sufficient access to perform this action. // // - ThrottlingException -// The request or operation could not be performed because a service is throttling -// requests. The most common source of throttling errors is launching EC2 instances -// such that your service limit for EC2 instances is exceeded. Request a limit -// increase or delete unused resources if possible. +// The request or operation couldn't be performed because a service is throttling +// requests. The most common source of throttling errors is creating resources +// that exceed your service limit for this resource type. Request a limit increase +// or delete unused resources if possible. // // - InternalServiceErrorException // The request processing has failed because of an unknown error, exception @@ -1747,13 +2223,13 @@ func (c *ManagedBlockchain) ListProposalVotesRequest(input *ListProposalVotesInp // correctly. // // - AccessDeniedException -// You do not have sufficient access to perform this action. +// You don't have sufficient access to perform this action. // // - ThrottlingException -// The request or operation could not be performed because a service is throttling -// requests. The most common source of throttling errors is launching EC2 instances -// such that your service limit for EC2 instances is exceeded. Request a limit -// increase or delete unused resources if possible. +// The request or operation couldn't be performed because a service is throttling +// requests. The most common source of throttling errors is creating resources +// that exceed your service limit for this resource type. Request a limit increase +// or delete unused resources if possible. // // - InternalServiceErrorException // The request processing has failed because of an unknown error, exception @@ -1899,17 +2375,17 @@ func (c *ManagedBlockchain) ListProposalsRequest(input *ListProposalsInput) (req // correctly. // // - ResourceNotFoundException -// A requested resource does not exist. It may have been deleted or referenced -// inaccurately. +// A requested resource doesn't exist. It may have been deleted or referenced +// incorrectly. // // - AccessDeniedException -// You do not have sufficient access to perform this action. +// You don't have sufficient access to perform this action. // // - ThrottlingException -// The request or operation could not be performed because a service is throttling -// requests. The most common source of throttling errors is launching EC2 instances -// such that your service limit for EC2 instances is exceeded. Request a limit -// increase or delete unused resources if possible. +// The request or operation couldn't be performed because a service is throttling +// requests. The most common source of throttling errors is creating resources +// that exceed your service limit for this resource type. Request a limit increase +// or delete unused resources if possible. // // - InternalServiceErrorException // The request processing has failed because of an unknown error, exception @@ -2057,11 +2533,11 @@ func (c *ManagedBlockchain) ListTagsForResourceRequest(input *ListTagsForResourc // correctly. // // - ResourceNotFoundException -// A requested resource does not exist. It may have been deleted or referenced -// inaccurately. +// A requested resource doesn't exist. It may have been deleted or referenced +// incorrectly. // // - ResourceNotReadyException -// The requested resource exists but is not in a status that can complete the +// The requested resource exists but isn't in a status that can complete the // operation. // // See also, https://docs.aws.amazon.com/goto/WebAPI/managedblockchain-2018-09-24/ListTagsForResource @@ -2131,8 +2607,8 @@ func (c *ManagedBlockchain) RejectInvitationRequest(input *RejectInvitationInput // RejectInvitation API operation for Amazon Managed Blockchain. // // Rejects an invitation to join a network. This action can be called by a principal -// in an AWS account that has received an invitation to create a member and -// join a network. +// in an Amazon Web Services account that has received an invitation to create +// a member and join a network. // // Applies only to Hyperledger Fabric. // @@ -2152,17 +2628,17 @@ func (c *ManagedBlockchain) RejectInvitationRequest(input *RejectInvitationInput // - IllegalActionException // // - AccessDeniedException -// You do not have sufficient access to perform this action. +// You don't have sufficient access to perform this action. // // - ResourceNotFoundException -// A requested resource does not exist. It may have been deleted or referenced -// inaccurately. +// A requested resource doesn't exist. It may have been deleted or referenced +// incorrectly. // // - ThrottlingException -// The request or operation could not be performed because a service is throttling -// requests. The most common source of throttling errors is launching EC2 instances -// such that your service limit for EC2 instances is exceeded. Request a limit -// increase or delete unused resources if possible. +// The request or operation couldn't be performed because a service is throttling +// requests. The most common source of throttling errors is creating resources +// that exceed your service limit for this resource type. Request a limit increase +// or delete unused resources if possible. // // - InternalServiceErrorException // The request processing has failed because of an unknown error, exception @@ -2266,13 +2742,13 @@ func (c *ManagedBlockchain) TagResourceRequest(input *TagResourceInput) (req *re // correctly. // // - ResourceNotFoundException -// A requested resource does not exist. It may have been deleted or referenced -// inaccurately. +// A requested resource doesn't exist. It may have been deleted or referenced +// incorrectly. // // - TooManyTagsException // // - ResourceNotReadyException -// The requested resource exists but is not in a status that can complete the +// The requested resource exists but isn't in a status that can complete the // operation. // // See also, https://docs.aws.amazon.com/goto/WebAPI/managedblockchain-2018-09-24/TagResource @@ -2366,11 +2842,11 @@ func (c *ManagedBlockchain) UntagResourceRequest(input *UntagResourceInput) (req // correctly. // // - ResourceNotFoundException -// A requested resource does not exist. It may have been deleted or referenced -// inaccurately. +// A requested resource doesn't exist. It may have been deleted or referenced +// incorrectly. // // - ResourceNotReadyException -// The requested resource exists but is not in a status that can complete the +// The requested resource exists but isn't in a status that can complete the // operation. // // See also, https://docs.aws.amazon.com/goto/WebAPI/managedblockchain-2018-09-24/UntagResource @@ -2457,17 +2933,17 @@ func (c *ManagedBlockchain) UpdateMemberRequest(input *UpdateMemberInput) (req * // correctly. // // - AccessDeniedException -// You do not have sufficient access to perform this action. +// You don't have sufficient access to perform this action. // // - ResourceNotFoundException -// A requested resource does not exist. It may have been deleted or referenced -// inaccurately. +// A requested resource doesn't exist. It may have been deleted or referenced +// incorrectly. // // - ThrottlingException -// The request or operation could not be performed because a service is throttling -// requests. The most common source of throttling errors is launching EC2 instances -// such that your service limit for EC2 instances is exceeded. Request a limit -// increase or delete unused resources if possible. +// The request or operation couldn't be performed because a service is throttling +// requests. The most common source of throttling errors is creating resources +// that exceed your service limit for this resource type. Request a limit increase +// or delete unused resources if possible. // // - InternalServiceErrorException // The request processing has failed because of an unknown error, exception @@ -2557,17 +3033,17 @@ func (c *ManagedBlockchain) UpdateNodeRequest(input *UpdateNodeInput) (req *requ // correctly. // // - AccessDeniedException -// You do not have sufficient access to perform this action. +// You don't have sufficient access to perform this action. // // - ResourceNotFoundException -// A requested resource does not exist. It may have been deleted or referenced -// inaccurately. +// A requested resource doesn't exist. It may have been deleted or referenced +// incorrectly. // // - ThrottlingException -// The request or operation could not be performed because a service is throttling -// requests. The most common source of throttling errors is launching EC2 instances -// such that your service limit for EC2 instances is exceeded. Request a limit -// increase or delete unused resources if possible. +// The request or operation couldn't be performed because a service is throttling +// requests. The most common source of throttling errors is creating resources +// that exceed your service limit for this resource type. Request a limit increase +// or delete unused resources if possible. // // - InternalServiceErrorException // The request processing has failed because of an unknown error, exception @@ -2640,8 +3116,8 @@ func (c *ManagedBlockchain) VoteOnProposalRequest(input *VoteOnProposalInput) (r // VoteOnProposal API operation for Amazon Managed Blockchain. // // Casts a vote for a specified ProposalId on behalf of a member. The member -// to vote as, specified by VoterMemberId, must be in the same AWS account as -// the principal that calls the action. +// to vote as, specified by VoterMemberId, must be in the same Amazon Web Services +// account as the principal that calls the action. // // Applies only to Hyperledger Fabric. // @@ -2661,17 +3137,17 @@ func (c *ManagedBlockchain) VoteOnProposalRequest(input *VoteOnProposalInput) (r // - IllegalActionException // // - AccessDeniedException -// You do not have sufficient access to perform this action. +// You don't have sufficient access to perform this action. // // - ResourceNotFoundException -// A requested resource does not exist. It may have been deleted or referenced -// inaccurately. +// A requested resource doesn't exist. It may have been deleted or referenced +// incorrectly. // // - ThrottlingException -// The request or operation could not be performed because a service is throttling -// requests. The most common source of throttling errors is launching EC2 instances -// such that your service limit for EC2 instances is exceeded. Request a limit -// increase or delete unused resources if possible. +// The request or operation couldn't be performed because a service is throttling +// requests. The most common source of throttling errors is creating resources +// that exceed your service limit for this resource type. Request a limit increase +// or delete unused resources if possible. // // - InternalServiceErrorException // The request processing has failed because of an unknown error, exception @@ -2699,7 +3175,7 @@ func (c *ManagedBlockchain) VoteOnProposalWithContext(ctx aws.Context, input *Vo return out, req.Send() } -// You do not have sufficient access to perform this action. +// You don't have sufficient access to perform this action. type AccessDeniedException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -2763,6 +3239,169 @@ func (s *AccessDeniedException) RequestID() string { return s.RespMetadata.RequestID } +// The token based access feature is in preview release for Ethereum on Amazon +// Managed Blockchain and is subject to change. We recommend that you use this +// feature only with test scenarios, and not in production environments. +// +// The properties of the Accessor. +type Accessor struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the accessor. For more information about + // ARNs and their format, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) + // in the Amazon Web Services General Reference. + Arn *string `min:"1" type:"string"` + + // The billing token is a property of the accessor. Use this token to make Ethereum + // API calls to your Ethereum node. The billing token is used to track your + // accessor object for billing Ethereum API requests made to your Ethereum nodes. + BillingToken *string `min:"42" type:"string"` + + // The creation date and time of the accessor. + CreationDate *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + // The unique identifier of the accessor. + Id *string `min:"1" type:"string"` + + // The current status of the accessor. + Status *string `type:"string" enum:"AccessorStatus"` + + // The type of the accessor. + // + // Currently accessor type is restricted to BILLING_TOKEN. + Type *string `type:"string" enum:"AccessorType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Accessor) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Accessor) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *Accessor) SetArn(v string) *Accessor { + s.Arn = &v + return s +} + +// SetBillingToken sets the BillingToken field's value. +func (s *Accessor) SetBillingToken(v string) *Accessor { + s.BillingToken = &v + return s +} + +// SetCreationDate sets the CreationDate field's value. +func (s *Accessor) SetCreationDate(v time.Time) *Accessor { + s.CreationDate = &v + return s +} + +// SetId sets the Id field's value. +func (s *Accessor) SetId(v string) *Accessor { + s.Id = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *Accessor) SetStatus(v string) *Accessor { + s.Status = &v + return s +} + +// SetType sets the Type field's value. +func (s *Accessor) SetType(v string) *Accessor { + s.Type = &v + return s +} + +// The token based access feature is in preview release for Ethereum on Amazon +// Managed Blockchain and is subject to change. We recommend that you use this +// feature only with test scenarios, and not in production environments. +// +// A summary of accessor properties. +type AccessorSummary struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the accessor. For more information about + // ARNs and their format, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) + // in the Amazon Web Services General Reference. + Arn *string `min:"1" type:"string"` + + // The creation date and time of the accessor. + CreationDate *time.Time `type:"timestamp" timestampFormat:"iso8601"` + + // The unique identifier of the accessor. + Id *string `min:"1" type:"string"` + + // The current status of the accessor. + Status *string `type:"string" enum:"AccessorStatus"` + + // The type of the accessor. + // + // Currently accessor type is restricted to BILLING_TOKEN. + Type *string `type:"string" enum:"AccessorType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessorSummary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AccessorSummary) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *AccessorSummary) SetArn(v string) *AccessorSummary { + s.Arn = &v + return s +} + +// SetCreationDate sets the CreationDate field's value. +func (s *AccessorSummary) SetCreationDate(v time.Time) *AccessorSummary { + s.CreationDate = &v + return s +} + +// SetId sets the Id field's value. +func (s *AccessorSummary) SetId(v string) *AccessorSummary { + s.Id = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *AccessorSummary) SetStatus(v string) *AccessorSummary { + s.Status = &v + return s +} + +// SetType sets the Type field's value. +func (s *AccessorSummary) SetType(v string) *AccessorSummary { + s.Type = &v + return s +} + // A policy type that defines the voting rules for the network. The rules decide // if a proposal is approved. Approval may be based on criteria such as the // percentage of YES votes and the duration of the proposal. The policy applies @@ -2775,20 +3414,145 @@ type ApprovalThresholdPolicy struct { // The duration from the time that a proposal is created until it expires. If // members cast neither the required number of YES votes to approve the proposal // nor the number of NO votes required to reject it before the duration expires, - // the proposal is EXPIRED and ProposalActions are not carried out. + // the proposal is EXPIRED and ProposalActions aren't carried out. ProposalDurationInHours *int64 `min:"1" type:"integer"` // Determines whether the vote percentage must be greater than the ThresholdPercentage // or must be greater than or equal to the ThreholdPercentage to be approved. ThresholdComparator *string `type:"string" enum:"ThresholdComparator"` - // The percentage of votes among all members that must be YES for a proposal - // to be approved. For example, a ThresholdPercentage value of 50 indicates - // 50%. The ThresholdComparator determines the precise comparison. If a ThresholdPercentage - // value of 50 is specified on a network with 10 members, along with a ThresholdComparator - // value of GREATER_THAN, this indicates that 6 YES votes are required for the - // proposal to be approved. - ThresholdPercentage *int64 `type:"integer"` + // The percentage of votes among all members that must be YES for a proposal + // to be approved. For example, a ThresholdPercentage value of 50 indicates + // 50%. The ThresholdComparator determines the precise comparison. If a ThresholdPercentage + // value of 50 is specified on a network with 10 members, along with a ThresholdComparator + // value of GREATER_THAN, this indicates that 6 YES votes are required for the + // proposal to be approved. + ThresholdPercentage *int64 `type:"integer"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ApprovalThresholdPolicy) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ApprovalThresholdPolicy) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ApprovalThresholdPolicy) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ApprovalThresholdPolicy"} + if s.ProposalDurationInHours != nil && *s.ProposalDurationInHours < 1 { + invalidParams.Add(request.NewErrParamMinValue("ProposalDurationInHours", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetProposalDurationInHours sets the ProposalDurationInHours field's value. +func (s *ApprovalThresholdPolicy) SetProposalDurationInHours(v int64) *ApprovalThresholdPolicy { + s.ProposalDurationInHours = &v + return s +} + +// SetThresholdComparator sets the ThresholdComparator field's value. +func (s *ApprovalThresholdPolicy) SetThresholdComparator(v string) *ApprovalThresholdPolicy { + s.ThresholdComparator = &v + return s +} + +// SetThresholdPercentage sets the ThresholdPercentage field's value. +func (s *ApprovalThresholdPolicy) SetThresholdPercentage(v int64) *ApprovalThresholdPolicy { + s.ThresholdPercentage = &v + return s +} + +type CreateAccessorInput struct { + _ struct{} `type:"structure"` + + // The type of accessor. + // + // Currently accessor type is restricted to BILLING_TOKEN. + // + // AccessorType is a required field + AccessorType *string `type:"string" required:"true" enum:"AccessorType"` + + // This is a unique, case-sensitive identifier that you provide to ensure the + // idempotency of the operation. An idempotent operation completes no more than + // once. This identifier is required only if you make a service request directly + // using an HTTP client. It is generated automatically if you use an Amazon + // Web Services SDK or the Amazon Web Services CLI. + ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateAccessorInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateAccessorInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateAccessorInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateAccessorInput"} + if s.AccessorType == nil { + invalidParams.Add(request.NewErrParamRequired("AccessorType")) + } + if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccessorType sets the AccessorType field's value. +func (s *CreateAccessorInput) SetAccessorType(v string) *CreateAccessorInput { + s.AccessorType = &v + return s +} + +// SetClientRequestToken sets the ClientRequestToken field's value. +func (s *CreateAccessorInput) SetClientRequestToken(v string) *CreateAccessorInput { + s.ClientRequestToken = &v + return s +} + +type CreateAccessorOutput struct { + _ struct{} `type:"structure"` + + // The unique identifier of the accessor. + AccessorId *string `min:"1" type:"string"` + + // The billing token is a property of the Accessor. Use this token to make Ethereum + // API calls to your Ethereum node. The billing token is used to track your + // accessor object for billing Ethereum API requests made to your Ethereum nodes. + BillingToken *string `min:"42" type:"string"` } // String returns the string representation. @@ -2796,7 +3560,7 @@ type ApprovalThresholdPolicy struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ApprovalThresholdPolicy) String() string { +func (s CreateAccessorOutput) String() string { return awsutil.Prettify(s) } @@ -2805,38 +3569,19 @@ func (s ApprovalThresholdPolicy) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ApprovalThresholdPolicy) GoString() string { +func (s CreateAccessorOutput) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *ApprovalThresholdPolicy) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ApprovalThresholdPolicy"} - if s.ProposalDurationInHours != nil && *s.ProposalDurationInHours < 1 { - invalidParams.Add(request.NewErrParamMinValue("ProposalDurationInHours", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetProposalDurationInHours sets the ProposalDurationInHours field's value. -func (s *ApprovalThresholdPolicy) SetProposalDurationInHours(v int64) *ApprovalThresholdPolicy { - s.ProposalDurationInHours = &v - return s -} - -// SetThresholdComparator sets the ThresholdComparator field's value. -func (s *ApprovalThresholdPolicy) SetThresholdComparator(v string) *ApprovalThresholdPolicy { - s.ThresholdComparator = &v +// SetAccessorId sets the AccessorId field's value. +func (s *CreateAccessorOutput) SetAccessorId(v string) *CreateAccessorOutput { + s.AccessorId = &v return s } -// SetThresholdPercentage sets the ThresholdPercentage field's value. -func (s *ApprovalThresholdPolicy) SetThresholdPercentage(v int64) *ApprovalThresholdPolicy { - s.ThresholdPercentage = &v +// SetBillingToken sets the BillingToken field's value. +func (s *CreateAccessorOutput) SetBillingToken(v string) *CreateAccessorOutput { + s.BillingToken = &v return s } @@ -2846,8 +3591,8 @@ type CreateMemberInput struct { // A unique, case-sensitive identifier that you provide to ensure the idempotency // of the operation. An idempotent operation completes no more than one time. // This identifier is required only if you make a service request directly using - // an HTTP client. It is generated automatically if you use an AWS SDK or the - // AWS CLI. + // an HTTP client. It is generated automatically if you use an Amazon Web Services + // SDK or the CLI. ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"` // The unique identifier of the invitation that is sent to the member to join @@ -2976,11 +3721,11 @@ func (s *CreateMemberOutput) SetMemberId(v string) *CreateMemberOutput { type CreateNetworkInput struct { _ struct{} `type:"structure"` - // A unique, case-sensitive identifier that you provide to ensure the idempotency - // of the operation. An idempotent operation completes no more than one time. - // This identifier is required only if you make a service request directly using - // an HTTP client. It is generated automatically if you use an AWS SDK or the - // AWS CLI. + // This is a unique, case-sensitive identifier that you provide to ensure the + // idempotency of the operation. An idempotent operation completes no more than + // once. This identifier is required only if you make a service request directly + // using an HTTP client. It is generated automatically if you use an Amazon + // Web Services SDK or the Amazon Web Services CLI. ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"` // An optional description for the network. @@ -3195,8 +3940,8 @@ type CreateNodeInput struct { // A unique, case-sensitive identifier that you provide to ensure the idempotency // of the operation. An idempotent operation completes no more than one time. // This identifier is required only if you make a service request directly using - // an HTTP client. It is generated automatically if you use an AWS SDK or the - // AWS CLI. + // an HTTP client. It is generated automatically if you use an Amazon Web Services + // SDK or the CLI. ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"` // The unique identifier of the member that owns this node. @@ -3357,8 +4102,8 @@ type CreateProposalInput struct { // A unique, case-sensitive identifier that you provide to ensure the idempotency // of the operation. An idempotent operation completes no more than one time. // This identifier is required only if you make a service request directly using - // an HTTP client. It is generated automatically if you use an AWS SDK or the - // AWS CLI. + // an HTTP client. It is generated automatically if you use an Amazon Web Services + // SDK or the CLI. ClientRequestToken *string `min:"1" type:"string" idempotencyToken:"true"` // A description for the proposal that is visible to voting members, for example, @@ -3367,7 +4112,7 @@ type CreateProposalInput struct { // The unique identifier of the member that is creating the proposal. This identifier // is especially useful for identifying the member making the proposal when - // multiple members exist in a single AWS account. + // multiple members exist in a single Amazon Web Services account. // // MemberId is a required field MemberId *string `min:"1" type:"string" required:"true"` @@ -3509,6 +4254,77 @@ func (s *CreateProposalOutput) SetProposalId(v string) *CreateProposalOutput { return s } +type DeleteAccessorInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The unique identifier of the accessor. + // + // AccessorId is a required field + AccessorId *string `location:"uri" locationName:"AccessorId" min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteAccessorInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteAccessorInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteAccessorInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteAccessorInput"} + if s.AccessorId == nil { + invalidParams.Add(request.NewErrParamRequired("AccessorId")) + } + if s.AccessorId != nil && len(*s.AccessorId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccessorId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccessorId sets the AccessorId field's value. +func (s *DeleteAccessorInput) SetAccessorId(v string) *DeleteAccessorInput { + s.AccessorId = &v + return s +} + +type DeleteAccessorOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteAccessorOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteAccessorOutput) GoString() string { + return s.String() +} + type DeleteMemberInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -3707,6 +4523,86 @@ func (s DeleteNodeOutput) GoString() string { return s.String() } +type GetAccessorInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The unique identifier of the accessor. + // + // AccessorId is a required field + AccessorId *string `location:"uri" locationName:"AccessorId" min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetAccessorInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetAccessorInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetAccessorInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetAccessorInput"} + if s.AccessorId == nil { + invalidParams.Add(request.NewErrParamRequired("AccessorId")) + } + if s.AccessorId != nil && len(*s.AccessorId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("AccessorId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAccessorId sets the AccessorId field's value. +func (s *GetAccessorInput) SetAccessorId(v string) *GetAccessorInput { + s.AccessorId = &v + return s +} + +type GetAccessorOutput struct { + _ struct{} `type:"structure"` + + // The properties of the accessor. + Accessor *Accessor `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetAccessorOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetAccessorOutput) GoString() string { + return s.String() +} + +// SetAccessor sets the Accessor field's value. +func (s *GetAccessorOutput) SetAccessor(v *Accessor) *GetAccessorOutput { + s.Accessor = v + return s +} + type GetMemberInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -4285,7 +5181,8 @@ func (s *InvalidRequestException) RequestID() string { return s.RespMetadata.RequestID } -// An invitation to an AWS account to create a member and join the network. +// An invitation to an Amazon Web Services account to create a member and join +// the network. // // Applies only to Hyperledger Fabric. type Invitation struct { @@ -4293,7 +5190,7 @@ type Invitation struct { // The Amazon Resource Name (ARN) of the invitation. For more information about // ARNs and their format, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) - // in the AWS General Reference. + // in the Amazon Web Services General Reference. Arn *string `min:"1" type:"string"` // The date and time that the invitation was created. @@ -4313,11 +5210,11 @@ type Invitation struct { // The status of the invitation: // - // * PENDING - The invitee has not created a member to join the network, - // and the invitation has not yet expired. + // * PENDING - The invitee hasn't created a member to join the network, and + // the invitation hasn't yet expired. // - // * ACCEPTING - The invitee has begun creating a member, and creation has - // not yet completed. + // * ACCEPTING - The invitee has begun creating a member, and creation hasn't + // yet completed. // // * ACCEPTED - The invitee created a member and joined the network using // the InvitationID. @@ -4383,14 +5280,15 @@ func (s *Invitation) SetStatus(v string) *Invitation { return s } -// An action to invite a specific AWS account to create a member and join the -// network. The InviteAction is carried out when a Proposal is APPROVED. +// An action to invite a specific Amazon Web Services account to create a member +// and join the network. The InviteAction is carried out when a Proposal is +// APPROVED. // // Applies only to Hyperledger Fabric. type InviteAction struct { _ struct{} `type:"structure"` - // The AWS account ID to invite. + // The Amazon Web Services account ID to invite. // // Principal is a required field Principal *string `type:"string" required:"true"` @@ -4433,6 +5331,100 @@ func (s *InviteAction) SetPrincipal(v string) *InviteAction { return s } +type ListAccessorsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The maximum number of accessors to list. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // The pagination token that indicates the next set of results to retrieve. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListAccessorsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListAccessorsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListAccessorsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListAccessorsInput"} + 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 *ListAccessorsInput) SetMaxResults(v int64) *ListAccessorsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAccessorsInput) SetNextToken(v string) *ListAccessorsInput { + s.NextToken = &v + return s +} + +type ListAccessorsOutput struct { + _ struct{} `type:"structure"` + + // An array of AccessorSummary objects that contain configuration properties + // for each accessor. + Accessors []*AccessorSummary `type:"list"` + + // The pagination token that indicates the next set of results to retrieve. + NextToken *string `type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListAccessorsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListAccessorsOutput) GoString() string { + return s.String() +} + +// SetAccessors sets the Accessors field's value. +func (s *ListAccessorsOutput) SetAccessors(v []*AccessorSummary) *ListAccessorsOutput { + s.Accessors = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAccessorsOutput) SetNextToken(v string) *ListAccessorsOutput { + s.NextToken = &v + return s +} + type ListInvitationsInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -4530,8 +5522,9 @@ type ListMembersInput struct { _ struct{} `type:"structure" nopayload:"true"` // An optional Boolean value. If provided, the request is limited either to - // members that the current AWS account owns (true) or that other AWS accounts - // own (false). If omitted, all members are listed. + // members that the current Amazon Web Services account owns (true) or that + // other Amazon Web Services accountsn own (false). If omitted, all members + // are listed. IsOwned *bool `location:"querystring" locationName:"isOwned" type:"boolean"` // The maximum number of members to return in the request. @@ -5169,7 +6162,7 @@ type ListTagsForResourceInput struct { // The Amazon Resource Name (ARN) of the resource. For more information about // ARNs and their format, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) - // in the AWS General Reference. + // in the Amazon Web Services General Reference. // // ResourceArn is a required field ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"` @@ -5318,7 +6311,7 @@ type Member struct { // The Amazon Resource Name (ARN) of the member. For more information about // ARNs and their format, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) - // in the AWS General Reference. + // in the Amazon Web Services General Reference. Arn *string `min:"1" type:"string"` // The date and time that the member was created. @@ -5334,11 +6327,14 @@ type Member struct { // The unique identifier of the member. Id *string `min:"1" type:"string"` - // The Amazon Resource Name (ARN) of the customer managed key in AWS Key Management - // Service (AWS KMS) that the member uses for encryption at rest. If the value - // of this parameter is "AWS Owned KMS Key", the member uses an AWS owned KMS - // key for encryption. This parameter is inherited by the nodes that this member - // owns. + // The Amazon Resource Name (ARN) of the customer managed key in Key Management + // Service (KMS) that the member uses for encryption at rest. If the value of + // this parameter is "AWS Owned KMS Key", the member uses an Amazon Web Services + // owned KMS key for encryption. This parameter is inherited by the nodes that + // this member owns. + // + // For more information, see Encryption at Rest (https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/managed-blockchain-encryption-at-rest.html) + // in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide. KmsKeyArn *string `type:"string"` // Configuration properties for logging events associated with a member. @@ -5352,32 +6348,34 @@ type Member struct { // The status of a member. // - // * CREATING - The AWS account is in the process of creating a member. + // * CREATING - The Amazon Web Services account is in the process of creating + // a member. // // * AVAILABLE - The member has been created and can participate in the network. // - // * CREATE_FAILED - The AWS account attempted to create a member and creation - // failed. + // * CREATE_FAILED - The Amazon Web Services account attempted to create + // a member and creation failed. // // * UPDATING - The member is in the process of being updated. // // * DELETING - The member and all associated resources are in the process - // of being deleted. Either the AWS account that owns the member deleted - // it, or the member is being deleted as the result of an APPROVED PROPOSAL - // to remove the member. - // - // * DELETED - The member can no longer participate on the network and all - // associated resources are deleted. Either the AWS account that owns the + // of being deleted. Either the Amazon Web Services account that owns the // member deleted it, or the member is being deleted as the result of an // APPROVED PROPOSAL to remove the member. // + // * DELETED - The member can no longer participate on the network and all + // associated resources are deleted. Either the Amazon Web Services account + // that owns the member deleted it, or the member is being deleted as the + // result of an APPROVED PROPOSAL to remove the member. + // // * INACCESSIBLE_ENCRYPTION_KEY - The member is impaired and might not function // as expected because it cannot access the specified customer managed key - // in AWS KMS for encryption at rest. Either the KMS key was disabled or - // deleted, or the grants on the key were revoked. The effect of disabling - // or deleting a key, or revoking a grant is not immediate. The member resource - // might take some time to find that the key is inaccessible. When a resource - // is in this state, we recommend deleting and recreating the resource. + // in KMS for encryption at rest. Either the KMS key was disabled or deleted, + // or the grants on the key were revoked. The effect of disabling or deleting + // a key or of revoking a grant isn't immediate. It might take some time + // for the member resource to discover that the key is inaccessible. When + // a resource is in this state, we recommend deleting and recreating the + // resource. Status *string `type:"string" enum:"MemberStatus"` // Tags assigned to the member. Tags consist of a key and optional value. For @@ -5484,20 +6482,23 @@ type MemberConfiguration struct { // FrameworkConfiguration is a required field FrameworkConfiguration *MemberFrameworkConfiguration `type:"structure" required:"true"` - // The Amazon Resource Name (ARN) of the customer managed key in AWS Key Management - // Service (AWS KMS) to use for encryption at rest in the member. This parameter - // is inherited by any nodes that this member creates. + // The Amazon Resource Name (ARN) of the customer managed key in Key Management + // Service (KMS) to use for encryption at rest in the member. This parameter + // is inherited by any nodes that this member creates. For more information, + // see Encryption at Rest (https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/managed-blockchain-encryption-at-rest.html) + // in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide. // // Use one of the following options to specify this parameter: // - // * Undefined or empty string - The member uses an AWS owned KMS key for - // encryption by default. + // * Undefined or empty string - By default, use an KMS key that is owned + // and managed by Amazon Web Services on your behalf. // - // * A valid symmetric customer managed KMS key - The member uses the specified - // key for encryption. Amazon Managed Blockchain doesn't support asymmetric - // keys. For more information, see Using symmetric and asymmetric keys (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) - // in the AWS Key Management Service Developer Guide. The following is an - // example of a KMS key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab + // * A valid symmetric customer managed KMS key - Use the specified KMS key + // in your account that you create, own, and manage. Amazon Managed Blockchain + // doesn't support asymmetric keys. For more information, see Using symmetric + // and asymmetric keys (https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) + // in the Key Management Service Developer Guide. The following is an example + // of a KMS key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab KmsKeyArn *string `min:"1" type:"string"` // Configuration properties for logging events associated with a member of a @@ -5878,7 +6879,7 @@ type MemberSummary struct { // The Amazon Resource Name (ARN) of the member. For more information about // ARNs and their format, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) - // in the AWS General Reference. + // in the Amazon Web Services General Reference. Arn *string `min:"1" type:"string"` // The date and time that the member was created. @@ -5890,8 +6891,8 @@ type MemberSummary struct { // The unique identifier of the member. Id *string `min:"1" type:"string"` - // An indicator of whether the member is owned by your AWS account or a different - // AWS account. + // An indicator of whether the member is owned by your Amazon Web Services account + // or a different Amazon Web Services account. IsOwned *bool `type:"boolean"` // The name of the member. @@ -5899,31 +6900,32 @@ type MemberSummary struct { // The status of the member. // - // * CREATING - The AWS account is in the process of creating a member. + // * CREATING - The Amazon Web Services account is in the process of creating + // a member. // // * AVAILABLE - The member has been created and can participate in the network. // - // * CREATE_FAILED - The AWS account attempted to create a member and creation - // failed. + // * CREATE_FAILED - The Amazon Web Services account attempted to create + // a member and creation failed. // // * UPDATING - The member is in the process of being updated. // // * DELETING - The member and all associated resources are in the process - // of being deleted. Either the AWS account that owns the member deleted - // it, or the member is being deleted as the result of an APPROVED PROPOSAL - // to remove the member. - // - // * DELETED - The member can no longer participate on the network and all - // associated resources are deleted. Either the AWS account that owns the + // of being deleted. Either the Amazon Web Services account that owns the // member deleted it, or the member is being deleted as the result of an // APPROVED PROPOSAL to remove the member. // + // * DELETED - The member can no longer participate on the network and all + // associated resources are deleted. Either the Amazon Web Services account + // that owns the member deleted it, or the member is being deleted as the + // result of an APPROVED PROPOSAL to remove the member. + // // * INACCESSIBLE_ENCRYPTION_KEY - The member is impaired and might not function // as expected because it cannot access the specified customer managed key - // in AWS Key Management Service (AWS KMS) for encryption at rest. Either - // the KMS key was disabled or deleted, or the grants on the key were revoked. - // The effect of disabling or deleting a key, or revoking a grant is not - // immediate. The member resource might take some time to find that the key + // in Key Management Service (KMS) for encryption at rest. Either the KMS + // key was disabled or deleted, or the grants on the key were revoked. The + // effect of disabling or deleting a key or of revoking a grant isn't immediate. + // It might take some time for the member resource to discover that the key // is inaccessible. When a resource is in this state, we recommend deleting // and recreating the resource. Status *string `type:"string" enum:"MemberStatus"` @@ -5995,7 +6997,7 @@ type Network struct { // The Amazon Resource Name (ARN) of the network. For more information about // ARNs and their format, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) - // in the AWS General Reference. + // in the Amazon Web Services General Reference. Arn *string `min:"1" type:"string"` // The date and time that the network was created. @@ -6357,7 +7359,7 @@ type NetworkSummary struct { // The Amazon Resource Name (ARN) of the network. For more information about // ARNs and their format, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) - // in the AWS General Reference. + // in the Amazon Web Services General Reference. Arn *string `min:"1" type:"string"` // The date and time that the network was created. @@ -6454,7 +7456,7 @@ type Node struct { // The Amazon Resource Name (ARN) of the node. For more information about ARNs // and their format, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) - // in the AWS General Reference. + // in the Amazon Web Services General Reference. Arn *string `min:"1" type:"string"` // The Availability Zone in which the node exists. Required for Ethereum nodes. @@ -6472,11 +7474,14 @@ type Node struct { // The instance type of the node. InstanceType *string `type:"string"` - // The Amazon Resource Name (ARN) of the customer managed key in AWS Key Management - // Service (AWS KMS) that the node uses for encryption at rest. If the value - // of this parameter is "AWS Owned KMS Key", the node uses an AWS owned KMS - // key for encryption. The node inherits this parameter from the member that - // it belongs to. + // The Amazon Resource Name (ARN) of the customer managed key in Key Management + // Service (KMS) that the node uses for encryption at rest. If the value of + // this parameter is "AWS Owned KMS Key", the node uses an Amazon Web Services + // owned KMS key for encryption. The node inherits this parameter from the member + // that it belongs to. + // + // For more information, see Encryption at Rest (https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/managed-blockchain-encryption-at-rest.html) + // in the Amazon Managed Blockchain Hyperledger Fabric Developer Guide. // // Applies only to Hyperledger Fabric. KmsKeyArn *string `type:"string"` @@ -6500,7 +7505,8 @@ type Node struct { // The status of the node. // - // * CREATING - The AWS account is in the process of creating a node. + // * CREATING - The Amazon Web Services account is in the process of creating + // a node. // // * AVAILABLE - The node has been created and can participate in the network. // @@ -6509,8 +7515,8 @@ type Node struct { // tries to recover them. If a node is recoverable, it returns to AVAILABLE. // Otherwise, it moves to FAILED status. // - // * CREATE_FAILED - The AWS account attempted to create a node and creation - // failed. + // * CREATE_FAILED - The Amazon Web Services account attempted to create + // a node and creation failed. // // * UPDATING - The node is in the process of being updated. // @@ -6523,11 +7529,11 @@ type Node struct { // // * INACCESSIBLE_ENCRYPTION_KEY - The node is impaired and might not function // as expected because it cannot access the specified customer managed key - // in AWS KMS for encryption at rest. Either the KMS key was disabled or - // deleted, or the grants on the key were revoked. The effect of disabling - // or deleting a key, or revoking a grant is not immediate. The node resource - // might take some time to find that the key is inaccessible. When a resource - // is in this state, we recommend deleting and recreating the resource. + // in KMS for encryption at rest. Either the KMS key was disabled or deleted, + // or the grants on the key were revoked. The effect of disabling or deleting + // a key or of revoking a grant isn't immediate. It might take some time + // for the node resource to discover that the key is inaccessible. When a + // resource is in this state, we recommend deleting and recreating the resource. Status *string `type:"string" enum:"NodeStatus"` // Tags assigned to the node. Each tag consists of a key and optional value. @@ -6718,10 +7724,10 @@ func (s *NodeConfiguration) SetStateDB(v string) *NodeConfiguration { type NodeEthereumAttributes struct { _ struct{} `type:"structure"` - // The endpoint on which the Ethereum node listens to run Ethereum JSON-RPC - // methods over HTTP connections from a client. Use this endpoint in client - // code for smart contracts when using an HTTP connection. Connections to this - // endpoint are authenticated using Signature Version 4 (https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). + // The endpoint on which the Ethereum node listens to run Ethereum API methods + // over HTTP connections from a client. Use this endpoint in client code for + // smart contracts when using an HTTP connection. Connections to this endpoint + // are authenticated using Signature Version 4 (https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html). HttpEndpoint *string `type:"string"` // The endpoint on which the Ethereum node listens to run Ethereum JSON-RPC @@ -6938,7 +7944,7 @@ type NodeSummary struct { // The Amazon Resource Name (ARN) of the node. For more information about ARNs // and their format, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) - // in the AWS General Reference. + // in the Amazon Web Services General Reference. Arn *string `min:"1" type:"string"` // The Availability Zone in which the node exists. @@ -7022,7 +8028,7 @@ type Proposal struct { // The Amazon Resource Name (ARN) of the proposal. For more information about // ARNs and their format, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) - // in the AWS General Reference. + // in the Amazon Web Services General Reference. Arn *string `min:"1" type:"string"` // The date and time that the proposal was created. @@ -7033,9 +8039,9 @@ type Proposal struct { // The date and time that the proposal expires. This is the CreationDate plus // the ProposalDurationInHours that is specified in the ProposalThresholdPolicy. - // After this date and time, if members have not cast enough votes to determine + // After this date and time, if members haven't cast enough votes to determine // the outcome according to the voting policy, the proposal is EXPIRED and Actions - // are not carried out. + // aren't carried out. ExpirationDate *time.Time `type:"timestamp" timestampFormat:"iso8601"` // The unique identifier of the network for which the proposal is made. @@ -7067,14 +8073,14 @@ type Proposal struct { // // * REJECTED - The proposal was rejected with insufficient YES votes among // members according to the VotingPolicy specified for the Network. The specified - // ProposalActions are not carried out. + // ProposalActions aren't carried out. // - // * EXPIRED - Members did not cast the number of votes required to determine + // * EXPIRED - Members didn't cast the number of votes required to determine // the proposal outcome before the proposal expired. The specified ProposalActions - // are not carried out. + // aren't carried out. // // * ACTION_FAILED - One or more of the specified ProposalActions in a proposal - // that was approved could not be completed because of an error. The ACTION_FAILED + // that was approved couldn't be completed because of an error. The ACTION_FAILED // status occurs even if only one ProposalAction fails and other actions // are successful. Status *string `type:"string" enum:"ProposalStatus"` @@ -7199,8 +8205,8 @@ func (s *Proposal) SetYesVoteCount(v int64) *Proposal { type ProposalActions struct { _ struct{} `type:"structure"` - // The actions to perform for an APPROVED proposal to invite an AWS account - // to create a member and join the network. + // The actions to perform for an APPROVED proposal to invite an Amazon Web Services + // account to create a member and join the network. Invitations []*InviteAction `type:"list"` // The actions to perform for an APPROVED proposal to remove a member from the @@ -7277,7 +8283,7 @@ type ProposalSummary struct { // The Amazon Resource Name (ARN) of the proposal. For more information about // ARNs and their format, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) - // in the AWS General Reference. + // in the Amazon Web Services General Reference. Arn *string `min:"1" type:"string"` // The date and time that the proposal was created. @@ -7288,9 +8294,9 @@ type ProposalSummary struct { // The date and time that the proposal expires. This is the CreationDate plus // the ProposalDurationInHours that is specified in the ProposalThresholdPolicy. - // After this date and time, if members have not cast enough votes to determine + // After this date and time, if members haven't cast enough votes to determine // the outcome according to the voting policy, the proposal is EXPIRED and Actions - // are not carried out. + // aren't carried out. ExpirationDate *time.Time `type:"timestamp" timestampFormat:"iso8601"` // The unique identifier of the proposal. @@ -7312,14 +8318,14 @@ type ProposalSummary struct { // // * REJECTED - The proposal was rejected with insufficient YES votes among // members according to the VotingPolicy specified for the Network. The specified - // ProposalActions are not carried out. + // ProposalActions aren't carried out. // - // * EXPIRED - Members did not cast the number of votes required to determine + // * EXPIRED - Members didn't cast the number of votes required to determine // the proposal outcome before the proposal expired. The specified ProposalActions - // are not carried out. + // aren't carried out. // // * ACTION_FAILED - One or more of the specified ProposalActions in a proposal - // that was approved could not be completed because of an error. + // that was approved couldn't be completed because of an error. Status *string `type:"string" enum:"ProposalStatus"` } @@ -7644,15 +8650,15 @@ func (s *ResourceLimitExceededException) RequestID() string { return s.RespMetadata.RequestID } -// A requested resource does not exist. It may have been deleted or referenced -// inaccurately. +// A requested resource doesn't exist. It may have been deleted or referenced +// incorrectly. type ResourceNotFoundException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"Message" type:"string"` - // A requested resource does not exist. It may have been deleted or referenced + // A requested resource doesn't exist. It may have been deleted or referenced // inaccurately. ResourceName *string `min:"1" type:"string"` } @@ -7713,7 +8719,7 @@ func (s *ResourceNotFoundException) RequestID() string { return s.RespMetadata.RequestID } -// The requested resource exists but is not in a status that can complete the +// The requested resource exists but isn't in a status that can complete the // operation. type ResourceNotReadyException struct { _ struct{} `type:"structure"` @@ -7783,7 +8789,7 @@ type TagResourceInput struct { // The Amazon Resource Name (ARN) of the resource. For more information about // ARNs and their format, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) - // in the AWS General Reference. + // in the Amazon Web Services General Reference. // // ResourceArn is a required field ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"` @@ -7867,10 +8873,10 @@ func (s TagResourceOutput) GoString() string { return s.String() } -// The request or operation could not be performed because a service is throttling -// requests. The most common source of throttling errors is launching EC2 instances -// such that your service limit for EC2 instances is exceeded. Request a limit -// increase or delete unused resources if possible. +// The request or operation couldn't be performed because a service is throttling +// requests. The most common source of throttling errors is creating resources +// that exceed your service limit for this resource type. Request a limit increase +// or delete unused resources if possible. type ThrottlingException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -8004,7 +9010,7 @@ type UntagResourceInput struct { // The Amazon Resource Name (ARN) of the resource. For more information about // ARNs and their format, see Amazon Resource Names (ARNs) (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) - // in the AWS General Reference. + // in the Amazon Web Services General Reference. // // ResourceArn is a required field ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"` @@ -8518,6 +9524,38 @@ func (s *VotingPolicy) SetApprovalThresholdPolicy(v *ApprovalThresholdPolicy) *V return s } +const ( + // AccessorStatusAvailable is a AccessorStatus enum value + AccessorStatusAvailable = "AVAILABLE" + + // AccessorStatusPendingDeletion is a AccessorStatus enum value + AccessorStatusPendingDeletion = "PENDING_DELETION" + + // AccessorStatusDeleted is a AccessorStatus enum value + AccessorStatusDeleted = "DELETED" +) + +// AccessorStatus_Values returns all elements of the AccessorStatus enum +func AccessorStatus_Values() []string { + return []string{ + AccessorStatusAvailable, + AccessorStatusPendingDeletion, + AccessorStatusDeleted, + } +} + +const ( + // AccessorTypeBillingToken is a AccessorType enum value + AccessorTypeBillingToken = "BILLING_TOKEN" +) + +// AccessorType_Values returns all elements of the AccessorType enum +func AccessorType_Values() []string { + return []string{ + AccessorTypeBillingToken, + } +} + const ( // EditionStarter is a Edition enum value EditionStarter = "STARTER" diff --git a/service/managedblockchain/doc.go b/service/managedblockchain/doc.go index b5d03c1427..1e0ce4ff13 100644 --- a/service/managedblockchain/doc.go +++ b/service/managedblockchain/doc.go @@ -12,7 +12,7 @@ // frameworks. Because of fundamental differences between the frameworks, some // API actions or data types may only apply in the context of one framework // and not the other. For example, actions related to Hyperledger Fabric network -// members such as CreateMember and DeleteMember do not apply to Ethereum. +// members such as CreateMember and DeleteMember don't apply to Ethereum. // // The description for each action indicates the framework or frameworks to // which it applies. Data types and properties that apply only in the context diff --git a/service/managedblockchain/errors.go b/service/managedblockchain/errors.go index ce43ec5f08..aaf9bf623f 100644 --- a/service/managedblockchain/errors.go +++ b/service/managedblockchain/errors.go @@ -11,7 +11,7 @@ const ( // ErrCodeAccessDeniedException for service response error code // "AccessDeniedException". // - // You do not have sufficient access to perform this action. + // You don't have sufficient access to perform this action. ErrCodeAccessDeniedException = "AccessDeniedException" // ErrCodeIllegalActionException for service response error code @@ -49,24 +49,24 @@ const ( // ErrCodeResourceNotFoundException for service response error code // "ResourceNotFoundException". // - // A requested resource does not exist. It may have been deleted or referenced - // inaccurately. + // A requested resource doesn't exist. It may have been deleted or referenced + // incorrectly. ErrCodeResourceNotFoundException = "ResourceNotFoundException" // ErrCodeResourceNotReadyException for service response error code // "ResourceNotReadyException". // - // The requested resource exists but is not in a status that can complete the + // The requested resource exists but isn't in a status that can complete the // operation. ErrCodeResourceNotReadyException = "ResourceNotReadyException" // ErrCodeThrottlingException for service response error code // "ThrottlingException". // - // The request or operation could not be performed because a service is throttling - // requests. The most common source of throttling errors is launching EC2 instances - // such that your service limit for EC2 instances is exceeded. Request a limit - // increase or delete unused resources if possible. + // The request or operation couldn't be performed because a service is throttling + // requests. The most common source of throttling errors is creating resources + // that exceed your service limit for this resource type. Request a limit increase + // or delete unused resources if possible. ErrCodeThrottlingException = "ThrottlingException" // ErrCodeTooManyTagsException for service response error code diff --git a/service/managedblockchain/managedblockchainiface/interface.go b/service/managedblockchain/managedblockchainiface/interface.go index 4061e75c3a..b8bd349bc7 100644 --- a/service/managedblockchain/managedblockchainiface/interface.go +++ b/service/managedblockchain/managedblockchainiface/interface.go @@ -26,7 +26,7 @@ import ( // // myFunc uses an SDK service client to make a request to // // Amazon Managed Blockchain. // func myFunc(svc managedblockchainiface.ManagedBlockchainAPI) bool { -// // Make svc.CreateMember request +// // Make svc.CreateAccessor request // } // // func main() { @@ -42,7 +42,7 @@ import ( // type mockManagedBlockchainClient struct { // managedblockchainiface.ManagedBlockchainAPI // } -// func (m *mockManagedBlockchainClient) CreateMember(input *managedblockchain.CreateMemberInput) (*managedblockchain.CreateMemberOutput, error) { +// func (m *mockManagedBlockchainClient) CreateAccessor(input *managedblockchain.CreateAccessorInput) (*managedblockchain.CreateAccessorOutput, error) { // // mock response/functionality // } // @@ -60,6 +60,10 @@ import ( // and waiters. Its suggested to use the pattern above for testing, or using // tooling to generate mocks to satisfy the interfaces. type ManagedBlockchainAPI interface { + CreateAccessor(*managedblockchain.CreateAccessorInput) (*managedblockchain.CreateAccessorOutput, error) + CreateAccessorWithContext(aws.Context, *managedblockchain.CreateAccessorInput, ...request.Option) (*managedblockchain.CreateAccessorOutput, error) + CreateAccessorRequest(*managedblockchain.CreateAccessorInput) (*request.Request, *managedblockchain.CreateAccessorOutput) + CreateMember(*managedblockchain.CreateMemberInput) (*managedblockchain.CreateMemberOutput, error) CreateMemberWithContext(aws.Context, *managedblockchain.CreateMemberInput, ...request.Option) (*managedblockchain.CreateMemberOutput, error) CreateMemberRequest(*managedblockchain.CreateMemberInput) (*request.Request, *managedblockchain.CreateMemberOutput) @@ -76,6 +80,10 @@ type ManagedBlockchainAPI interface { CreateProposalWithContext(aws.Context, *managedblockchain.CreateProposalInput, ...request.Option) (*managedblockchain.CreateProposalOutput, error) CreateProposalRequest(*managedblockchain.CreateProposalInput) (*request.Request, *managedblockchain.CreateProposalOutput) + DeleteAccessor(*managedblockchain.DeleteAccessorInput) (*managedblockchain.DeleteAccessorOutput, error) + DeleteAccessorWithContext(aws.Context, *managedblockchain.DeleteAccessorInput, ...request.Option) (*managedblockchain.DeleteAccessorOutput, error) + DeleteAccessorRequest(*managedblockchain.DeleteAccessorInput) (*request.Request, *managedblockchain.DeleteAccessorOutput) + DeleteMember(*managedblockchain.DeleteMemberInput) (*managedblockchain.DeleteMemberOutput, error) DeleteMemberWithContext(aws.Context, *managedblockchain.DeleteMemberInput, ...request.Option) (*managedblockchain.DeleteMemberOutput, error) DeleteMemberRequest(*managedblockchain.DeleteMemberInput) (*request.Request, *managedblockchain.DeleteMemberOutput) @@ -84,6 +92,10 @@ type ManagedBlockchainAPI interface { DeleteNodeWithContext(aws.Context, *managedblockchain.DeleteNodeInput, ...request.Option) (*managedblockchain.DeleteNodeOutput, error) DeleteNodeRequest(*managedblockchain.DeleteNodeInput) (*request.Request, *managedblockchain.DeleteNodeOutput) + GetAccessor(*managedblockchain.GetAccessorInput) (*managedblockchain.GetAccessorOutput, error) + GetAccessorWithContext(aws.Context, *managedblockchain.GetAccessorInput, ...request.Option) (*managedblockchain.GetAccessorOutput, error) + GetAccessorRequest(*managedblockchain.GetAccessorInput) (*request.Request, *managedblockchain.GetAccessorOutput) + GetMember(*managedblockchain.GetMemberInput) (*managedblockchain.GetMemberOutput, error) GetMemberWithContext(aws.Context, *managedblockchain.GetMemberInput, ...request.Option) (*managedblockchain.GetMemberOutput, error) GetMemberRequest(*managedblockchain.GetMemberInput) (*request.Request, *managedblockchain.GetMemberOutput) @@ -100,6 +112,13 @@ type ManagedBlockchainAPI interface { GetProposalWithContext(aws.Context, *managedblockchain.GetProposalInput, ...request.Option) (*managedblockchain.GetProposalOutput, error) GetProposalRequest(*managedblockchain.GetProposalInput) (*request.Request, *managedblockchain.GetProposalOutput) + ListAccessors(*managedblockchain.ListAccessorsInput) (*managedblockchain.ListAccessorsOutput, error) + ListAccessorsWithContext(aws.Context, *managedblockchain.ListAccessorsInput, ...request.Option) (*managedblockchain.ListAccessorsOutput, error) + ListAccessorsRequest(*managedblockchain.ListAccessorsInput) (*request.Request, *managedblockchain.ListAccessorsOutput) + + ListAccessorsPages(*managedblockchain.ListAccessorsInput, func(*managedblockchain.ListAccessorsOutput, bool) bool) error + ListAccessorsPagesWithContext(aws.Context, *managedblockchain.ListAccessorsInput, func(*managedblockchain.ListAccessorsOutput, bool) bool, ...request.Option) error + ListInvitations(*managedblockchain.ListInvitationsInput) (*managedblockchain.ListInvitationsOutput, error) ListInvitationsWithContext(aws.Context, *managedblockchain.ListInvitationsInput, ...request.Option) (*managedblockchain.ListInvitationsOutput, error) ListInvitationsRequest(*managedblockchain.ListInvitationsInput) (*request.Request, *managedblockchain.ListInvitationsOutput) diff --git a/service/s3/api.go b/service/s3/api.go index 56e0e9b4a2..a9c653a00d 100644 --- a/service/s3/api.go +++ b/service/s3/api.go @@ -40885,6 +40885,9 @@ const ( // BucketLocationConstraintApSoutheast2 is a BucketLocationConstraint enum value BucketLocationConstraintApSoutheast2 = "ap-southeast-2" + // BucketLocationConstraintApSoutheast3 is a BucketLocationConstraint enum value + BucketLocationConstraintApSoutheast3 = "ap-southeast-3" + // BucketLocationConstraintCaCentral1 is a BucketLocationConstraint enum value BucketLocationConstraintCaCentral1 = "ca-central-1" @@ -40948,6 +40951,7 @@ func BucketLocationConstraint_Values() []string { BucketLocationConstraintApSouth1, BucketLocationConstraintApSoutheast1, BucketLocationConstraintApSoutheast2, + BucketLocationConstraintApSoutheast3, BucketLocationConstraintCaCentral1, BucketLocationConstraintCnNorth1, BucketLocationConstraintCnNorthwest1, diff --git a/service/s3/examples_test.go b/service/s3/examples_test.go index 1e1aefa9fa..7a7177f921 100644 --- a/service/s3/examples_test.go +++ b/service/s3/examples_test.go @@ -452,15 +452,15 @@ func ExampleS3_DeleteObject_shared01() { fmt.Println(result) } -// To remove tag set from an object version -// The following example removes tag set associated with the specified object version. -// The request specifies both the object key and object version. +// To remove tag set from an object +// 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) @@ -481,15 +481,15 @@ func ExampleS3_DeleteObjectTagging_shared00() { fmt.Println(result) } -// To remove tag set from an object -// 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. +// To remove tag set from an 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) @@ -510,10 +510,10 @@ func ExampleS3_DeleteObjectTagging_shared01() { fmt.Println(result) } -// To delete multiple object versions 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. +// To delete multiple objects 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. func ExampleS3_DeleteObjects_shared00() { svc := s3.New(session.New()) input := &s3.DeleteObjectsInput{ @@ -521,12 +521,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), @@ -551,10 +549,10 @@ func ExampleS3_DeleteObjects_shared00() { fmt.Println(result) } -// To delete multiple objects 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. +// To delete multiple object versions 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. func ExampleS3_DeleteObjects_shared01() { svc := s3.New(session.New()) input := &s3.DeleteObjectsInput{ @@ -562,10 +560,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), @@ -996,13 +996,15 @@ func ExampleS3_GetObjectAcl_shared00() { fmt.Println(result) } -// To retrieve tag set of an object -// The following example retrieves tag set of an object. +// To retrieve tag set of a specific object version +// 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) @@ -1023,15 +1025,13 @@ func ExampleS3_GetObjectTagging_shared00() { fmt.Println(result) } -// To retrieve tag set of a specific object version -// The following example retrieves tag set of an object. The request specifies object -// version. +// To retrieve tag set of an object +// 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) @@ -1161,16 +1161,12 @@ func ExampleS3_ListBuckets_shared00() { fmt.Println(result) } -// List next set of multipart uploads when previous result is truncated -// The following example specifies the upload-id-marker and key-marker from previous -// truncated response to retrieve next setup of multipart uploads. +// To list in-progress multipart uploads on a bucket +// The following example lists in-progress multipart uploads on a specific bucket. func ExampleS3_ListMultipartUploads_shared00() { svc := s3.New(session.New()) input := &s3.ListMultipartUploadsInput{ - Bucket: aws.String("examplebucket"), - KeyMarker: aws.String("nextkeyfrompreviousresponse"), - MaxUploads: aws.Int64(2), - UploadIdMarker: aws.String("valuefrompreviousresponse"), + Bucket: aws.String("examplebucket"), } result, err := svc.ListMultipartUploads(input) @@ -1191,12 +1187,16 @@ func ExampleS3_ListMultipartUploads_shared00() { fmt.Println(result) } -// To list in-progress multipart uploads on a bucket -// The following example lists in-progress multipart uploads on a specific bucket. +// List next set of multipart uploads when previous result is truncated +// The following example specifies the upload-id-marker and key-marker from previous +// truncated response to retrieve next setup of multipart uploads. func ExampleS3_ListMultipartUploads_shared01() { svc := s3.New(session.New()) input := &s3.ListMultipartUploadsInput{ - Bucket: aws.String("examplebucket"), + Bucket: aws.String("examplebucket"), + KeyMarker: aws.String("nextkeyfrompreviousresponse"), + MaxUploads: aws.Int64(2), + UploadIdMarker: aws.String("valuefrompreviousresponse"), } result, err := svc.ListMultipartUploads(input) @@ -1751,15 +1751,16 @@ func ExampleS3_PutBucketWebsite_shared00() { fmt.Println(result) } -// To create an object. -// The following example creates an object. If the bucket is versioning enabled, S3 -// returns version ID in response. +// To upload an object and specify optional 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. 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("objectkey"), + 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) @@ -1810,19 +1811,18 @@ func ExampleS3_PutObject_shared01() { fmt.Println(result) } -// To upload object and specify user-defined metadata -// The following example creates an object. The request also specifies optional metadata. -// If the bucket is versioning enabled, S3 returns version ID in response. +// To upload an object and specify server-side encryption and object tags +// 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("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("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) @@ -1843,16 +1843,19 @@ func ExampleS3_PutObject_shared02() { fmt.Println(result) } -// To upload an object and specify optional 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. +// To upload object and specify user-defined metadata +// 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_shared03() { 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"), + Metadata: map[string]*string{ + "metadata1": aws.String("value1"), + "metadata2": aws.String("value2"), + }, } result, err := svc.PutObject(input) @@ -1904,18 +1907,17 @@ func ExampleS3_PutObject_shared04() { fmt.Println(result) } -// To upload an object and specify server-side encryption and object tags -// 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. +// To upload an object and specify canned ACL. +// The following example uploads and object. The request specifies optional canned ACL +// (access control list) to all READ access to authenticated users. If the bucket is +// versioning enabled, S3 returns version ID in response. func ExampleS3_PutObject_shared05() { 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"), + ACL: aws.String("authenticated-read"), + Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), + Bucket: aws.String("examplebucket"), + Key: aws.String("exampleobject"), } result, err := svc.PutObject(input) @@ -1936,17 +1938,15 @@ func ExampleS3_PutObject_shared05() { fmt.Println(result) } -// To upload an object and specify canned ACL. -// The following example uploads and object. The request specifies optional canned ACL -// (access control list) to all READ access to authenticated users. If the bucket is -// versioning enabled, S3 returns version ID in response. +// To create an 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{ - ACL: aws.String("authenticated-read"), Body: aws.ReadSeekCloser(strings.NewReader("filetoupload")), Bucket: aws.String("examplebucket"), - Key: aws.String("exampleobject"), + Key: aws.String("objectkey"), } result, err := svc.PutObject(input) @@ -2107,17 +2107,18 @@ func ExampleS3_UploadPart_shared00() { fmt.Println(result) } -// To upload a part by copying data from an existing object as data source -// The following example uploads a part of a multipart upload by copying data from an -// existing object as data source. +// To upload a part by copying byte range from an existing object as data source +// The following example uploads a part of a multipart upload by copying a specified +// byte range from an existing object as data source. func ExampleS3_UploadPartCopy_shared00() { svc := s3.New(session.New()) input := &s3.UploadPartCopyInput{ - Bucket: aws.String("examplebucket"), - CopySource: aws.String("/bucketname/sourceobjectkey"), - Key: aws.String("examplelargeobject"), - PartNumber: aws.Int64(1), - UploadId: aws.String("exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--"), + Bucket: aws.String("examplebucket"), + CopySource: aws.String("/bucketname/sourceobjectkey"), + CopySourceRange: aws.String("bytes=1-100000"), + Key: aws.String("examplelargeobject"), + PartNumber: aws.Int64(2), + UploadId: aws.String("exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--"), } result, err := svc.UploadPartCopy(input) @@ -2138,18 +2139,17 @@ func ExampleS3_UploadPartCopy_shared00() { fmt.Println(result) } -// To upload a part by copying byte range from an existing object as data source -// The following example uploads a part of a multipart upload by copying a specified -// byte range from an existing object as data source. +// To upload a part by copying data from an existing object as data source +// The following example uploads a part of a multipart upload by copying data from an +// existing object as data source. func ExampleS3_UploadPartCopy_shared01() { svc := s3.New(session.New()) input := &s3.UploadPartCopyInput{ - Bucket: aws.String("examplebucket"), - CopySource: aws.String("/bucketname/sourceobjectkey"), - CopySourceRange: aws.String("bytes=1-100000"), - Key: aws.String("examplelargeobject"), - PartNumber: aws.Int64(2), - UploadId: aws.String("exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--"), + Bucket: aws.String("examplebucket"), + CopySource: aws.String("/bucketname/sourceobjectkey"), + Key: aws.String("examplelargeobject"), + PartNumber: aws.Int64(1), + UploadId: aws.String("exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--"), } result, err := svc.UploadPartCopy(input) diff --git a/service/supportapp/api.go b/service/supportapp/api.go index 56472b13c5..4b5def8c1e 100644 --- a/service/supportapp/api.go +++ b/service/supportapp/api.go @@ -103,6 +103,13 @@ func (c *SupportApp) CreateSlackChannelConfigurationRequest(input *CreateSlackCh // - Delete a Slack workspace from your Amazon Web Services account that // has an active live chat channel. // +// - Call the RegisterSlackWorkspaceForOrganization API from an Amazon Web +// Services account that doesn't belong to an organization. +// +// - Call the RegisterSlackWorkspaceForOrganization API from a member account, +// but the management account hasn't registered that workspace yet for the +// organization. +// // - AccessDeniedException // You don't have sufficient permission to perform this action. // @@ -195,8 +202,8 @@ func (c *SupportApp) DeleteAccountAliasRequest(input *DeleteAccountAliasInput) ( // Returned Error Types: // // - ResourceNotFoundException -// The specified resource is missing or doesn't exist, such as an account alias -// or Slack channel configuration. +// The specified resource is missing or doesn't exist, such as an account alias, +// Slack channel configuration, or Slack workspace configuration. // // - AccessDeniedException // You don't have sufficient permission to perform this action. @@ -298,9 +305,16 @@ func (c *SupportApp) DeleteSlackChannelConfigurationRequest(input *DeleteSlackCh // - Delete a Slack workspace from your Amazon Web Services account that // has an active live chat channel. // +// - Call the RegisterSlackWorkspaceForOrganization API from an Amazon Web +// Services account that doesn't belong to an organization. +// +// - Call the RegisterSlackWorkspaceForOrganization API from a member account, +// but the management account hasn't registered that workspace yet for the +// organization. +// // - ResourceNotFoundException -// The specified resource is missing or doesn't exist, such as an account alias -// or Slack channel configuration. +// The specified resource is missing or doesn't exist, such as an account alias, +// Slack channel configuration, or Slack workspace configuration. // // - AccessDeniedException // You don't have sufficient permission to perform this action. @@ -406,9 +420,16 @@ func (c *SupportApp) DeleteSlackWorkspaceConfigurationRequest(input *DeleteSlack // - Delete a Slack workspace from your Amazon Web Services account that // has an active live chat channel. // +// - Call the RegisterSlackWorkspaceForOrganization API from an Amazon Web +// Services account that doesn't belong to an organization. +// +// - Call the RegisterSlackWorkspaceForOrganization API from a member account, +// but the management account hasn't registered that workspace yet for the +// organization. +// // - ResourceNotFoundException -// The specified resource is missing or doesn't exist, such as an account alias -// or Slack channel configuration. +// The specified resource is missing or doesn't exist, such as an account alias, +// Slack channel configuration, or Slack workspace configuration. // // - AccessDeniedException // You don't have sufficient permission to perform this action. @@ -896,6 +917,147 @@ func (c *SupportApp) PutAccountAliasWithContext(ctx aws.Context, input *PutAccou return out, req.Send() } +const opRegisterSlackWorkspaceForOrganization = "RegisterSlackWorkspaceForOrganization" + +// RegisterSlackWorkspaceForOrganizationRequest generates a "aws/request.Request" representing the +// client's request for the RegisterSlackWorkspaceForOrganization 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 RegisterSlackWorkspaceForOrganization for more information on using the RegisterSlackWorkspaceForOrganization +// 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 RegisterSlackWorkspaceForOrganizationRequest method. +// req, resp := client.RegisterSlackWorkspaceForOrganizationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/support-app-2021-08-20/RegisterSlackWorkspaceForOrganization +func (c *SupportApp) RegisterSlackWorkspaceForOrganizationRequest(input *RegisterSlackWorkspaceForOrganizationInput) (req *request.Request, output *RegisterSlackWorkspaceForOrganizationOutput) { + op := &request.Operation{ + Name: opRegisterSlackWorkspaceForOrganization, + HTTPMethod: "POST", + HTTPPath: "/control/register-slack-workspace-for-organization", + } + + if input == nil { + input = &RegisterSlackWorkspaceForOrganizationInput{} + } + + output = &RegisterSlackWorkspaceForOrganizationOutput{} + req = c.newRequest(op, input, output) + return +} + +// RegisterSlackWorkspaceForOrganization API operation for AWS Support App. +// +// Registers a Slack workspace for your Amazon Web Services account. To call +// this API, your account must be part of an organization in Organizations. +// +// If you're the management account and you want to register Slack workspaces +// for your organization, you must complete the following tasks: +// +// Sign in to the Amazon Web Services Support Center (https://console.aws.amazon.com/support/app) +// and authorize the Slack workspaces where you want your organization to have +// access to. See Authorize a Slack workspace (https://docs.aws.amazon.com/awssupport/latest/user/authorize-slack-workspace.html) +// in the Amazon Web Services Support User Guide. +// +// Call the RegisterSlackWorkspaceForOrganization API to authorize each Slack +// workspace for the organization. +// +// After the management account authorizes the Slack workspace, member accounts +// can call this API to authorize the same Slack workspace for their individual +// accounts. Member accounts don't need to authorize the Slack workspace manually +// through the Amazon Web Services Support Center (https://console.aws.amazon.com/support/app). +// +// To use the Amazon Web Services Support App, each account must then complete +// the following tasks: +// +// - Create an Identity and Access Management (IAM) role with the required +// permission. For more information, see Managing access to the Amazon Web +// Services Support App (https://docs.aws.amazon.com/awssupport/latest/user/support-app-permissions.html). +// +// - Configure a Slack channel to use the Amazon Web Services Support App +// for support cases for that account. For more information, see Configuring +// a Slack channel (https://docs.aws.amazon.com/awssupport/latest/user/add-your-slack-channel.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 Support App's +// API operation RegisterSlackWorkspaceForOrganization for usage and error information. +// +// Returned Error Types: +// +// - ConflictException +// Your request has a conflict. For example, you might receive this error if +// you try the following: +// +// - Add, update, or delete a Slack channel configuration before you add +// a Slack workspace to your Amazon Web Services account. +// +// - Add a Slack channel configuration that already exists in your Amazon +// Web Services account. +// +// - Delete a Slack channel configuration for a live chat channel. +// +// - Delete a Slack workspace from your Amazon Web Services account that +// has an active live chat channel. +// +// - Call the RegisterSlackWorkspaceForOrganization API from an Amazon Web +// Services account that doesn't belong to an organization. +// +// - Call the RegisterSlackWorkspaceForOrganization API from a member account, +// but the management account hasn't registered that workspace yet for the +// organization. +// +// - ResourceNotFoundException +// The specified resource is missing or doesn't exist, such as an account alias, +// Slack channel configuration, or Slack workspace configuration. +// +// - AccessDeniedException +// You don't have sufficient permission to perform this action. +// +// - InternalServerException +// We can’t process your request right now because of a server issue. Try +// again later. +// +// - ValidationException +// Your request input doesn't meet the constraints that the Amazon Web Services +// Support App specifies. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/support-app-2021-08-20/RegisterSlackWorkspaceForOrganization +func (c *SupportApp) RegisterSlackWorkspaceForOrganization(input *RegisterSlackWorkspaceForOrganizationInput) (*RegisterSlackWorkspaceForOrganizationOutput, error) { + req, out := c.RegisterSlackWorkspaceForOrganizationRequest(input) + return out, req.Send() +} + +// RegisterSlackWorkspaceForOrganizationWithContext is the same as RegisterSlackWorkspaceForOrganization with the addition of +// the ability to pass a context and additional request options. +// +// See RegisterSlackWorkspaceForOrganization 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 *SupportApp) RegisterSlackWorkspaceForOrganizationWithContext(ctx aws.Context, input *RegisterSlackWorkspaceForOrganizationInput, opts ...request.Option) (*RegisterSlackWorkspaceForOrganizationOutput, error) { + req, out := c.RegisterSlackWorkspaceForOrganizationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opUpdateSlackChannelConfiguration = "UpdateSlackChannelConfiguration" // UpdateSlackChannelConfigurationRequest generates a "aws/request.Request" representing the @@ -965,9 +1127,16 @@ func (c *SupportApp) UpdateSlackChannelConfigurationRequest(input *UpdateSlackCh // - Delete a Slack workspace from your Amazon Web Services account that // has an active live chat channel. // +// - Call the RegisterSlackWorkspaceForOrganization API from an Amazon Web +// Services account that doesn't belong to an organization. +// +// - Call the RegisterSlackWorkspaceForOrganization API from a member account, +// but the management account hasn't registered that workspace yet for the +// organization. +// // - ResourceNotFoundException -// The specified resource is missing or doesn't exist, such as an account alias -// or Slack channel configuration. +// The specified resource is missing or doesn't exist, such as an account alias, +// Slack channel configuration, or Slack workspace configuration. // // - AccessDeniedException // You don't have sufficient permission to perform this action. @@ -1079,6 +1248,13 @@ func (s *AccessDeniedException) RequestID() string { // // - Delete a Slack workspace from your Amazon Web Services account that // has an active live chat channel. +// +// - Call the RegisterSlackWorkspaceForOrganization API from an Amazon Web +// Services account that doesn't belong to an organization. +// +// - Call the RegisterSlackWorkspaceForOrganization API from a member account, +// but the management account hasn't registered that workspace yet for the +// organization. type ConflictException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -1167,16 +1343,24 @@ type CreateSlackChannelConfigurationInput struct { // The case severity for a support case that you want to receive notifications. // - //

If you specify high or all, you must specify - // true for at least one of the following parameters:

    - //
  • notifyOnAddCorrespondenceToCase

  • - //

    notifyOnCreateOrReopenCase

  • notifyOnResolveCase - //

If you specify none, the following parameters - // must be null or false:

  • notifyOnAddCorrespondenceToCase - //

  • notifyOnCreateOrReopenCase

  • - //
  • notifyOnResolveCase

If - // you don't specify these parameters in your request, they default to false.

- //
+ // If you specify high or all, you must specify true for at least one of the + // following parameters: + // + // * notifyOnAddCorrespondenceToCase + // + // * notifyOnCreateOrReopenCase + // + // * notifyOnResolveCase + // + // If you specify none, the following parameters must be null or false: + // + // * notifyOnAddCorrespondenceToCase + // + // * notifyOnCreateOrReopenCase + // + // * notifyOnResolveCase + // + // If you don't specify these parameters in your request, they default to false. // // NotifyOnCaseSeverity is a required field NotifyOnCaseSeverity *string `locationName:"notifyOnCaseSeverity" type:"string" required:"true" enum:"NotificationSeverityLevel"` @@ -1187,7 +1371,8 @@ type CreateSlackChannelConfigurationInput struct { // Whether you want to get notified when a support case is resolved. NotifyOnResolveCase *bool `locationName:"notifyOnResolveCase" type:"boolean"` - // The team ID in Slack. This ID uniquely identifies a Slack workspace. + // The team ID in Slack. This ID uniquely identifies a Slack workspace, such + // as T012ABCDEFG. // // TeamId is a required field TeamId *string `locationName:"teamId" min:"1" type:"string" required:"true"` @@ -1367,7 +1552,8 @@ type DeleteSlackChannelConfigurationInput struct { // ChannelId is a required field ChannelId *string `locationName:"channelId" min:"1" type:"string" required:"true"` - // The team ID in Slack. This ID uniquely identifies a Slack workspace. + // The team ID in Slack. This ID uniquely identifies a Slack workspace, such + // as T012ABCDEFG. // // TeamId is a required field TeamId *string `locationName:"teamId" min:"1" type:"string" required:"true"` @@ -1450,7 +1636,8 @@ func (s DeleteSlackChannelConfigurationOutput) GoString() string { type DeleteSlackWorkspaceConfigurationInput struct { _ struct{} `type:"structure"` - // The team ID in Slack. This ID uniquely identifies a Slack workspace. + // The team ID in Slack. This ID uniquely identifies a Slack workspace, such + // as T012ABCDEFG. // // TeamId is a required field TeamId *string `locationName:"teamId" min:"1" type:"string" required:"true"` @@ -1887,8 +2074,110 @@ func (s PutAccountAliasOutput) GoString() string { return s.String() } -// The specified resource is missing or doesn't exist, such as an account alias -// or Slack channel configuration. +type RegisterSlackWorkspaceForOrganizationInput struct { + _ struct{} `type:"structure"` + + // The team ID in Slack. This ID uniquely identifies a Slack workspace, such + // as T012ABCDEFG. Specify the Slack workspace that you want to use for your + // organization. + // + // TeamId is a required field + TeamId *string `locationName:"teamId" min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RegisterSlackWorkspaceForOrganizationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RegisterSlackWorkspaceForOrganizationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RegisterSlackWorkspaceForOrganizationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RegisterSlackWorkspaceForOrganizationInput"} + if s.TeamId == nil { + invalidParams.Add(request.NewErrParamRequired("TeamId")) + } + if s.TeamId != nil && len(*s.TeamId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("TeamId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetTeamId sets the TeamId field's value. +func (s *RegisterSlackWorkspaceForOrganizationInput) SetTeamId(v string) *RegisterSlackWorkspaceForOrganizationInput { + s.TeamId = &v + return s +} + +type RegisterSlackWorkspaceForOrganizationOutput struct { + _ struct{} `type:"structure"` + + // Whether the Amazon Web Services account is a management or member account + // that's part of an organization in Organizations. + AccountType *string `locationName:"accountType" type:"string" enum:"AccountType"` + + // The team ID in Slack. This ID uniquely identifies a Slack workspace, such + // as T012ABCDEFG. + TeamId *string `locationName:"teamId" min:"1" type:"string"` + + // The name of the Slack workspace. + TeamName *string `locationName:"teamName" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RegisterSlackWorkspaceForOrganizationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RegisterSlackWorkspaceForOrganizationOutput) GoString() string { + return s.String() +} + +// SetAccountType sets the AccountType field's value. +func (s *RegisterSlackWorkspaceForOrganizationOutput) SetAccountType(v string) *RegisterSlackWorkspaceForOrganizationOutput { + s.AccountType = &v + return s +} + +// SetTeamId sets the TeamId field's value. +func (s *RegisterSlackWorkspaceForOrganizationOutput) SetTeamId(v string) *RegisterSlackWorkspaceForOrganizationOutput { + s.TeamId = &v + return s +} + +// SetTeamName sets the TeamName field's value. +func (s *RegisterSlackWorkspaceForOrganizationOutput) SetTeamName(v string) *RegisterSlackWorkspaceForOrganizationOutput { + s.TeamName = &v + return s +} + +// The specified resource is missing or doesn't exist, such as an account alias, +// Slack channel configuration, or Slack workspace configuration. type ResourceNotFoundException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` @@ -2019,8 +2308,8 @@ func (s *ServiceQuotaExceededException) RequestID() string { return s.RespMetadata.RequestID } -// The configuration for a Slack channel that you added to an Amazon Web Services -// account. +// The configuration for a Slack channel that you added for your Amazon Web +// Services account. type SlackChannelConfiguration struct { _ struct{} `type:"structure"` @@ -2030,7 +2319,7 @@ type SlackChannelConfiguration struct { ChannelId *string `locationName:"channelId" min:"1" type:"string" required:"true"` // The name of the Slack channel that you configured with the Amazon Web Services - // Support App. + // Support App for your Amazon Web Services account. ChannelName *string `locationName:"channelName" min:"1" type:"string"` // The Amazon Resource Name (ARN) of an IAM role that you want to use to perform @@ -2051,7 +2340,8 @@ type SlackChannelConfiguration struct { // Whether you want to get notified when a support case is resolved. NotifyOnResolveCase *bool `locationName:"notifyOnResolveCase" type:"boolean"` - // The team ID in Slack. This ID uniquely identifies a Slack workspace. + // The team ID in Slack. This ID uniquely identifies a Slack workspace, such + // as T012ABCDEFG. // // TeamId is a required field TeamId *string `locationName:"teamId" min:"1" type:"string" required:"true"` @@ -2128,10 +2418,18 @@ func (s *SlackChannelConfiguration) SetTeamId(v string) *SlackChannelConfigurati type SlackWorkspaceConfiguration struct { _ struct{} `type:"structure"` - // The team ID in Slack. This ID uniquely identifies a Slack workspace. + // Whether to allow member accounts to authorize Slack workspaces. Member accounts + // must be part of an organization in Organizations. + AllowOrganizationMemberAccount *bool `locationName:"allowOrganizationMemberAccount" type:"boolean"` + + // The team ID in Slack. This ID uniquely identifies a Slack workspace, such + // as T012ABCDEFG. // // TeamId is a required field TeamId *string `locationName:"teamId" min:"1" type:"string" required:"true"` + + // The name of the Slack workspace. + TeamName *string `locationName:"teamName" min:"1" type:"string"` } // String returns the string representation. @@ -2152,12 +2450,24 @@ func (s SlackWorkspaceConfiguration) GoString() string { return s.String() } +// SetAllowOrganizationMemberAccount sets the AllowOrganizationMemberAccount field's value. +func (s *SlackWorkspaceConfiguration) SetAllowOrganizationMemberAccount(v bool) *SlackWorkspaceConfiguration { + s.AllowOrganizationMemberAccount = &v + return s +} + // SetTeamId sets the TeamId field's value. func (s *SlackWorkspaceConfiguration) SetTeamId(v string) *SlackWorkspaceConfiguration { s.TeamId = &v return s } +// SetTeamName sets the TeamName field's value. +func (s *SlackWorkspaceConfiguration) SetTeamName(v string) *SlackWorkspaceConfiguration { + s.TeamName = &v + return s +} + type UpdateSlackChannelConfigurationInput struct { _ struct{} `type:"structure"` @@ -2180,16 +2490,26 @@ type UpdateSlackChannelConfigurationInput struct { // The case severity for a support case that you want to receive notifications. // - //

If you specify high or all, at least one - // of the following parameters must be true:

  • - // notifyOnAddCorrespondenceToCase

  • notifyOnCreateOrReopenCase - //

  • notifyOnResolveCase

- //

If you specify none, any of the following parameters that - // you specify in your request must be false:

  • - //

    notifyOnAddCorrespondenceToCase

  • notifyOnCreateOrReopenCase - //

  • notifyOnResolveCase

- //

If you don't specify these parameters in your request, the Amazon - // Web Services Support App uses the current values by default.

+ // If you specify high or all, at least one of the following parameters must + // be true: + // + // * notifyOnAddCorrespondenceToCase + // + // * notifyOnCreateOrReopenCase + // + // * notifyOnResolveCase + // + // If you specify none, any of the following parameters that you specify in + // your request must be false: + // + // * notifyOnAddCorrespondenceToCase + // + // * notifyOnCreateOrReopenCase + // + // * notifyOnResolveCase + // + // If you don't specify these parameters in your request, the Amazon Web Services + // Support App uses the current values by default. NotifyOnCaseSeverity *string `locationName:"notifyOnCaseSeverity" type:"string" enum:"NotificationSeverityLevel"` // Whether you want to get notified when a support case is created or reopened. @@ -2198,7 +2518,8 @@ type UpdateSlackChannelConfigurationInput struct { // Whether you want to get notified when a support case is resolved. NotifyOnResolveCase *bool `locationName:"notifyOnResolveCase" type:"boolean"` - // The team ID in Slack. This ID uniquely identifies a Slack workspace. + // The team ID in Slack. This ID uniquely identifies a Slack workspace, such + // as T012ABCDEFG. // // TeamId is a required field TeamId *string `locationName:"teamId" min:"1" type:"string" required:"true"` @@ -2326,7 +2647,8 @@ type UpdateSlackChannelConfigurationOutput struct { // Whether you want to get notified when a support case is resolved. NotifyOnResolveCase *bool `locationName:"notifyOnResolveCase" type:"boolean"` - // The team ID in Slack. This ID uniquely identifies a Slack workspace. + // The team ID in Slack. This ID uniquely identifies a Slack workspace, such + // as T012ABCDEFG. TeamId *string `locationName:"teamId" min:"1" type:"string"` } @@ -2461,6 +2783,22 @@ func (s *ValidationException) RequestID() string { return s.RespMetadata.RequestID } +const ( + // AccountTypeManagement is a AccountType enum value + AccountTypeManagement = "management" + + // AccountTypeMember is a AccountType enum value + AccountTypeMember = "member" +) + +// AccountType_Values returns all elements of the AccountType enum +func AccountType_Values() []string { + return []string{ + AccountTypeManagement, + AccountTypeMember, + } +} + const ( // NotificationSeverityLevelNone is a NotificationSeverityLevel enum value NotificationSeverityLevelNone = "none" diff --git a/service/supportapp/doc.go b/service/supportapp/doc.go index eb2c635144..3beb190260 100644 --- a/service/supportapp/doc.go +++ b/service/supportapp/doc.go @@ -31,12 +31,12 @@ // For more information, see Authorize a Slack workspace to enable the Amazon // Web Services Support App (https://docs.aws.amazon.com/awssupport/latest/user/authorize-slack-workspace.html). // -//
  • You must have a Business or Enterprise Support plan -// to use the Amazon Web Services Support App API.

  • For -// more information about the Amazon Web Services Support App endpoints, -// see the Amazon -// Web Services Support App in Slack endpoints in the Amazon Web Services -// General Reference.

+// - You must have a Business or Enterprise Support plan to use the Amazon +// Web Services Support App API. +// +// - For more information about the Amazon Web Services Support App endpoints, +// see the Amazon Web Services Support App in Slack endpoints (https://docs.aws.amazon.com/general/latest/gr/awssupport.html#awssupport_app_region) +// in the Amazon Web Services General Reference. // // See https://docs.aws.amazon.com/goto/WebAPI/support-app-2021-08-20 for more information on this service. // diff --git a/service/supportapp/errors.go b/service/supportapp/errors.go index fa3964a9de..a39e0bdaf1 100644 --- a/service/supportapp/errors.go +++ b/service/supportapp/errors.go @@ -30,6 +30,13 @@ const ( // // * Delete a Slack workspace from your Amazon Web Services account that // has an active live chat channel. + // + // * Call the RegisterSlackWorkspaceForOrganization API from an Amazon Web + // Services account that doesn't belong to an organization. + // + // * Call the RegisterSlackWorkspaceForOrganization API from a member account, + // but the management account hasn't registered that workspace yet for the + // organization. ErrCodeConflictException = "ConflictException" // ErrCodeInternalServerException for service response error code @@ -42,8 +49,8 @@ const ( // ErrCodeResourceNotFoundException for service response error code // "ResourceNotFoundException". // - // The specified resource is missing or doesn't exist, such as an account alias - // or Slack channel configuration. + // The specified resource is missing or doesn't exist, such as an account alias, + // Slack channel configuration, or Slack workspace configuration. ErrCodeResourceNotFoundException = "ResourceNotFoundException" // ErrCodeServiceQuotaExceededException for service response error code diff --git a/service/supportapp/supportappiface/interface.go b/service/supportapp/supportappiface/interface.go index fb9d71b642..7e790b5bbe 100644 --- a/service/supportapp/supportappiface/interface.go +++ b/service/supportapp/supportappiface/interface.go @@ -98,6 +98,10 @@ type SupportAppAPI interface { PutAccountAliasWithContext(aws.Context, *supportapp.PutAccountAliasInput, ...request.Option) (*supportapp.PutAccountAliasOutput, error) PutAccountAliasRequest(*supportapp.PutAccountAliasInput) (*request.Request, *supportapp.PutAccountAliasOutput) + RegisterSlackWorkspaceForOrganization(*supportapp.RegisterSlackWorkspaceForOrganizationInput) (*supportapp.RegisterSlackWorkspaceForOrganizationOutput, error) + RegisterSlackWorkspaceForOrganizationWithContext(aws.Context, *supportapp.RegisterSlackWorkspaceForOrganizationInput, ...request.Option) (*supportapp.RegisterSlackWorkspaceForOrganizationOutput, error) + RegisterSlackWorkspaceForOrganizationRequest(*supportapp.RegisterSlackWorkspaceForOrganizationInput) (*request.Request, *supportapp.RegisterSlackWorkspaceForOrganizationOutput) + UpdateSlackChannelConfiguration(*supportapp.UpdateSlackChannelConfigurationInput) (*supportapp.UpdateSlackChannelConfigurationOutput, error) UpdateSlackChannelConfigurationWithContext(aws.Context, *supportapp.UpdateSlackChannelConfigurationInput, ...request.Option) (*supportapp.UpdateSlackChannelConfigurationOutput, error) UpdateSlackChannelConfigurationRequest(*supportapp.UpdateSlackChannelConfigurationInput) (*request.Request, *supportapp.UpdateSlackChannelConfigurationOutput) diff --git a/service/workspacesweb/api.go b/service/workspacesweb/api.go index e7616e3861..2be4902829 100644 --- a/service/workspacesweb/api.go +++ b/service/workspacesweb/api.go @@ -292,6 +292,100 @@ func (c *WorkSpacesWeb) AssociateTrustStoreWithContext(ctx aws.Context, input *A return out, req.Send() } +const opAssociateUserAccessLoggingSettings = "AssociateUserAccessLoggingSettings" + +// AssociateUserAccessLoggingSettingsRequest generates a "aws/request.Request" representing the +// client's request for the AssociateUserAccessLoggingSettings 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 AssociateUserAccessLoggingSettings for more information on using the AssociateUserAccessLoggingSettings +// 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 AssociateUserAccessLoggingSettingsRequest method. +// req, resp := client.AssociateUserAccessLoggingSettingsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/AssociateUserAccessLoggingSettings +func (c *WorkSpacesWeb) AssociateUserAccessLoggingSettingsRequest(input *AssociateUserAccessLoggingSettingsInput) (req *request.Request, output *AssociateUserAccessLoggingSettingsOutput) { + op := &request.Operation{ + Name: opAssociateUserAccessLoggingSettings, + HTTPMethod: "PUT", + HTTPPath: "/portals/{portalArn+}/userAccessLoggingSettings", + } + + if input == nil { + input = &AssociateUserAccessLoggingSettingsInput{} + } + + output = &AssociateUserAccessLoggingSettingsOutput{} + req = c.newRequest(op, input, output) + return +} + +// AssociateUserAccessLoggingSettings API operation for Amazon WorkSpaces Web. +// +// Associates a user access logging settings resource with a web portal. +// +// 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 WorkSpaces Web's +// API operation AssociateUserAccessLoggingSettings for usage and error information. +// +// Returned Error Types: +// +// - InternalServerException +// There is an internal server error. +// +// - ResourceNotFoundException +// The resource cannot be found. +// +// - AccessDeniedException +// Access is denied. +// +// - ThrottlingException +// There is a throttling error. +// +// - ValidationException +// There is a validation error. +// +// - ConflictException +// There is a conflict. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/AssociateUserAccessLoggingSettings +func (c *WorkSpacesWeb) AssociateUserAccessLoggingSettings(input *AssociateUserAccessLoggingSettingsInput) (*AssociateUserAccessLoggingSettingsOutput, error) { + req, out := c.AssociateUserAccessLoggingSettingsRequest(input) + return out, req.Send() +} + +// AssociateUserAccessLoggingSettingsWithContext is the same as AssociateUserAccessLoggingSettings with the addition of +// the ability to pass a context and additional request options. +// +// See AssociateUserAccessLoggingSettings 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 *WorkSpacesWeb) AssociateUserAccessLoggingSettingsWithContext(ctx aws.Context, input *AssociateUserAccessLoggingSettingsInput, opts ...request.Option) (*AssociateUserAccessLoggingSettingsOutput, error) { + req, out := c.AssociateUserAccessLoggingSettingsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opAssociateUserSettings = "AssociateUserSettings" // AssociateUserSettingsRequest generates a "aws/request.Request" representing the @@ -875,6 +969,101 @@ func (c *WorkSpacesWeb) CreateTrustStoreWithContext(ctx aws.Context, input *Crea return out, req.Send() } +const opCreateUserAccessLoggingSettings = "CreateUserAccessLoggingSettings" + +// CreateUserAccessLoggingSettingsRequest generates a "aws/request.Request" representing the +// client's request for the CreateUserAccessLoggingSettings 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 CreateUserAccessLoggingSettings for more information on using the CreateUserAccessLoggingSettings +// 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 CreateUserAccessLoggingSettingsRequest method. +// req, resp := client.CreateUserAccessLoggingSettingsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/CreateUserAccessLoggingSettings +func (c *WorkSpacesWeb) CreateUserAccessLoggingSettingsRequest(input *CreateUserAccessLoggingSettingsInput) (req *request.Request, output *CreateUserAccessLoggingSettingsOutput) { + op := &request.Operation{ + Name: opCreateUserAccessLoggingSettings, + HTTPMethod: "POST", + HTTPPath: "/userAccessLoggingSettings", + } + + if input == nil { + input = &CreateUserAccessLoggingSettingsInput{} + } + + output = &CreateUserAccessLoggingSettingsOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateUserAccessLoggingSettings API operation for Amazon WorkSpaces Web. +// +// Creates a user access logging settings resource that can be associated with +// a web portal. +// +// 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 WorkSpaces Web's +// API operation CreateUserAccessLoggingSettings for usage and error information. +// +// Returned Error Types: +// +// - InternalServerException +// There is an internal server error. +// +// - AccessDeniedException +// Access is denied. +// +// - ThrottlingException +// There is a throttling error. +// +// - ServiceQuotaExceededException +// The service quota has been exceeded. +// +// - ValidationException +// There is a validation error. +// +// - ConflictException +// There is a conflict. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/CreateUserAccessLoggingSettings +func (c *WorkSpacesWeb) CreateUserAccessLoggingSettings(input *CreateUserAccessLoggingSettingsInput) (*CreateUserAccessLoggingSettingsOutput, error) { + req, out := c.CreateUserAccessLoggingSettingsRequest(input) + return out, req.Send() +} + +// CreateUserAccessLoggingSettingsWithContext is the same as CreateUserAccessLoggingSettings with the addition of +// the ability to pass a context and additional request options. +// +// See CreateUserAccessLoggingSettings 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 *WorkSpacesWeb) CreateUserAccessLoggingSettingsWithContext(ctx aws.Context, input *CreateUserAccessLoggingSettingsInput, opts ...request.Option) (*CreateUserAccessLoggingSettingsOutput, error) { + req, out := c.CreateUserAccessLoggingSettingsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCreateUserSettings = "CreateUserSettings" // CreateUserSettingsRequest generates a "aws/request.Request" representing the @@ -1431,6 +1620,98 @@ func (c *WorkSpacesWeb) DeleteTrustStoreWithContext(ctx aws.Context, input *Dele return out, req.Send() } +const opDeleteUserAccessLoggingSettings = "DeleteUserAccessLoggingSettings" + +// DeleteUserAccessLoggingSettingsRequest generates a "aws/request.Request" representing the +// client's request for the DeleteUserAccessLoggingSettings 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 DeleteUserAccessLoggingSettings for more information on using the DeleteUserAccessLoggingSettings +// 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 DeleteUserAccessLoggingSettingsRequest method. +// req, resp := client.DeleteUserAccessLoggingSettingsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/DeleteUserAccessLoggingSettings +func (c *WorkSpacesWeb) DeleteUserAccessLoggingSettingsRequest(input *DeleteUserAccessLoggingSettingsInput) (req *request.Request, output *DeleteUserAccessLoggingSettingsOutput) { + op := &request.Operation{ + Name: opDeleteUserAccessLoggingSettings, + HTTPMethod: "DELETE", + HTTPPath: "/userAccessLoggingSettings/{userAccessLoggingSettingsArn+}", + } + + if input == nil { + input = &DeleteUserAccessLoggingSettingsInput{} + } + + output = &DeleteUserAccessLoggingSettingsOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteUserAccessLoggingSettings API operation for Amazon WorkSpaces Web. +// +// Deletes user access logging settings. +// +// 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 WorkSpaces Web's +// API operation DeleteUserAccessLoggingSettings for usage and error information. +// +// Returned Error Types: +// +// - InternalServerException +// There is an internal server error. +// +// - AccessDeniedException +// Access is denied. +// +// - ThrottlingException +// There is a throttling error. +// +// - ValidationException +// There is a validation error. +// +// - ConflictException +// There is a conflict. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/DeleteUserAccessLoggingSettings +func (c *WorkSpacesWeb) DeleteUserAccessLoggingSettings(input *DeleteUserAccessLoggingSettingsInput) (*DeleteUserAccessLoggingSettingsOutput, error) { + req, out := c.DeleteUserAccessLoggingSettingsRequest(input) + return out, req.Send() +} + +// DeleteUserAccessLoggingSettingsWithContext is the same as DeleteUserAccessLoggingSettings with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteUserAccessLoggingSettings 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 *WorkSpacesWeb) DeleteUserAccessLoggingSettingsWithContext(ctx aws.Context, input *DeleteUserAccessLoggingSettingsInput, opts ...request.Option) (*DeleteUserAccessLoggingSettingsOutput, error) { + req, out := c.DeleteUserAccessLoggingSettingsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteUserSettings = "DeleteUserSettings" // DeleteUserSettingsRequest generates a "aws/request.Request" representing the @@ -1799,58 +2080,58 @@ func (c *WorkSpacesWeb) DisassociateTrustStoreWithContext(ctx aws.Context, input return out, req.Send() } -const opDisassociateUserSettings = "DisassociateUserSettings" +const opDisassociateUserAccessLoggingSettings = "DisassociateUserAccessLoggingSettings" -// DisassociateUserSettingsRequest generates a "aws/request.Request" representing the -// client's request for the DisassociateUserSettings operation. The "output" return +// DisassociateUserAccessLoggingSettingsRequest generates a "aws/request.Request" representing the +// client's request for the DisassociateUserAccessLoggingSettings 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 DisassociateUserSettings for more information on using the DisassociateUserSettings +// See DisassociateUserAccessLoggingSettings for more information on using the DisassociateUserAccessLoggingSettings // 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 DisassociateUserSettingsRequest method. -// req, resp := client.DisassociateUserSettingsRequest(params) +// // Example sending a request using the DisassociateUserAccessLoggingSettingsRequest method. +// req, resp := client.DisassociateUserAccessLoggingSettingsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/DisassociateUserSettings -func (c *WorkSpacesWeb) DisassociateUserSettingsRequest(input *DisassociateUserSettingsInput) (req *request.Request, output *DisassociateUserSettingsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/DisassociateUserAccessLoggingSettings +func (c *WorkSpacesWeb) DisassociateUserAccessLoggingSettingsRequest(input *DisassociateUserAccessLoggingSettingsInput) (req *request.Request, output *DisassociateUserAccessLoggingSettingsOutput) { op := &request.Operation{ - Name: opDisassociateUserSettings, + Name: opDisassociateUserAccessLoggingSettings, HTTPMethod: "DELETE", - HTTPPath: "/portals/{portalArn+}/userSettings", + HTTPPath: "/portals/{portalArn+}/userAccessLoggingSettings", } if input == nil { - input = &DisassociateUserSettingsInput{} + input = &DisassociateUserAccessLoggingSettingsInput{} } - output = &DisassociateUserSettingsOutput{} + output = &DisassociateUserAccessLoggingSettingsOutput{} req = c.newRequest(op, input, output) req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } -// DisassociateUserSettings API operation for Amazon WorkSpaces Web. +// DisassociateUserAccessLoggingSettings API operation for Amazon WorkSpaces Web. // -// Disassociates user settings from a web portal. +// Disassociates user access logging settings from a web portal. // // 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 WorkSpaces Web's -// API operation DisassociateUserSettings for usage and error information. +// API operation DisassociateUserAccessLoggingSettings for usage and error information. // // Returned Error Types: // @@ -1869,59 +2150,151 @@ func (c *WorkSpacesWeb) DisassociateUserSettingsRequest(input *DisassociateUserS // - ValidationException // There is a validation error. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/DisassociateUserSettings -func (c *WorkSpacesWeb) DisassociateUserSettings(input *DisassociateUserSettingsInput) (*DisassociateUserSettingsOutput, error) { - req, out := c.DisassociateUserSettingsRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/DisassociateUserAccessLoggingSettings +func (c *WorkSpacesWeb) DisassociateUserAccessLoggingSettings(input *DisassociateUserAccessLoggingSettingsInput) (*DisassociateUserAccessLoggingSettingsOutput, error) { + req, out := c.DisassociateUserAccessLoggingSettingsRequest(input) return out, req.Send() } -// DisassociateUserSettingsWithContext is the same as DisassociateUserSettings with the addition of +// DisassociateUserAccessLoggingSettingsWithContext is the same as DisassociateUserAccessLoggingSettings with the addition of // the ability to pass a context and additional request options. // -// See DisassociateUserSettings for details on how to use this API operation. +// See DisassociateUserAccessLoggingSettings 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 *WorkSpacesWeb) DisassociateUserSettingsWithContext(ctx aws.Context, input *DisassociateUserSettingsInput, opts ...request.Option) (*DisassociateUserSettingsOutput, error) { - req, out := c.DisassociateUserSettingsRequest(input) +func (c *WorkSpacesWeb) DisassociateUserAccessLoggingSettingsWithContext(ctx aws.Context, input *DisassociateUserAccessLoggingSettingsInput, opts ...request.Option) (*DisassociateUserAccessLoggingSettingsOutput, error) { + req, out := c.DisassociateUserAccessLoggingSettingsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -const opGetBrowserSettings = "GetBrowserSettings" +const opDisassociateUserSettings = "DisassociateUserSettings" -// GetBrowserSettingsRequest generates a "aws/request.Request" representing the -// client's request for the GetBrowserSettings operation. The "output" return +// DisassociateUserSettingsRequest generates a "aws/request.Request" representing the +// client's request for the DisassociateUserSettings 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 GetBrowserSettings for more information on using the GetBrowserSettings +// See DisassociateUserSettings for more information on using the DisassociateUserSettings // 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 GetBrowserSettingsRequest method. -// req, resp := client.GetBrowserSettingsRequest(params) +// // Example sending a request using the DisassociateUserSettingsRequest method. +// req, resp := client.DisassociateUserSettingsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/GetBrowserSettings -func (c *WorkSpacesWeb) GetBrowserSettingsRequest(input *GetBrowserSettingsInput) (req *request.Request, output *GetBrowserSettingsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/DisassociateUserSettings +func (c *WorkSpacesWeb) DisassociateUserSettingsRequest(input *DisassociateUserSettingsInput) (req *request.Request, output *DisassociateUserSettingsOutput) { op := &request.Operation{ - Name: opGetBrowserSettings, - HTTPMethod: "GET", - HTTPPath: "/browserSettings/{browserSettingsArn+}", - } + Name: opDisassociateUserSettings, + HTTPMethod: "DELETE", + HTTPPath: "/portals/{portalArn+}/userSettings", + } + + if input == nil { + input = &DisassociateUserSettingsInput{} + } + + output = &DisassociateUserSettingsOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// DisassociateUserSettings API operation for Amazon WorkSpaces Web. +// +// Disassociates user settings from a web portal. +// +// 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 WorkSpaces Web's +// API operation DisassociateUserSettings for usage and error information. +// +// Returned Error Types: +// +// - InternalServerException +// There is an internal server error. +// +// - ResourceNotFoundException +// The resource cannot be found. +// +// - AccessDeniedException +// Access is denied. +// +// - ThrottlingException +// There is a throttling error. +// +// - ValidationException +// There is a validation error. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/DisassociateUserSettings +func (c *WorkSpacesWeb) DisassociateUserSettings(input *DisassociateUserSettingsInput) (*DisassociateUserSettingsOutput, error) { + req, out := c.DisassociateUserSettingsRequest(input) + return out, req.Send() +} + +// DisassociateUserSettingsWithContext is the same as DisassociateUserSettings with the addition of +// the ability to pass a context and additional request options. +// +// See DisassociateUserSettings 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 *WorkSpacesWeb) DisassociateUserSettingsWithContext(ctx aws.Context, input *DisassociateUserSettingsInput, opts ...request.Option) (*DisassociateUserSettingsOutput, error) { + req, out := c.DisassociateUserSettingsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetBrowserSettings = "GetBrowserSettings" + +// GetBrowserSettingsRequest generates a "aws/request.Request" representing the +// client's request for the GetBrowserSettings 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 GetBrowserSettings for more information on using the GetBrowserSettings +// 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 GetBrowserSettingsRequest method. +// req, resp := client.GetBrowserSettingsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/GetBrowserSettings +func (c *WorkSpacesWeb) GetBrowserSettingsRequest(input *GetBrowserSettingsInput) (req *request.Request, output *GetBrowserSettingsOutput) { + op := &request.Operation{ + Name: opGetBrowserSettings, + HTTPMethod: "GET", + HTTPPath: "/browserSettings/{browserSettingsArn+}", + } if input == nil { input = &GetBrowserSettingsInput{} @@ -2528,6 +2901,97 @@ func (c *WorkSpacesWeb) GetTrustStoreCertificateWithContext(ctx aws.Context, inp return out, req.Send() } +const opGetUserAccessLoggingSettings = "GetUserAccessLoggingSettings" + +// GetUserAccessLoggingSettingsRequest generates a "aws/request.Request" representing the +// client's request for the GetUserAccessLoggingSettings 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 GetUserAccessLoggingSettings for more information on using the GetUserAccessLoggingSettings +// 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 GetUserAccessLoggingSettingsRequest method. +// req, resp := client.GetUserAccessLoggingSettingsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/GetUserAccessLoggingSettings +func (c *WorkSpacesWeb) GetUserAccessLoggingSettingsRequest(input *GetUserAccessLoggingSettingsInput) (req *request.Request, output *GetUserAccessLoggingSettingsOutput) { + op := &request.Operation{ + Name: opGetUserAccessLoggingSettings, + HTTPMethod: "GET", + HTTPPath: "/userAccessLoggingSettings/{userAccessLoggingSettingsArn+}", + } + + if input == nil { + input = &GetUserAccessLoggingSettingsInput{} + } + + output = &GetUserAccessLoggingSettingsOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetUserAccessLoggingSettings API operation for Amazon WorkSpaces Web. +// +// Gets user access logging settings. +// +// 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 WorkSpaces Web's +// API operation GetUserAccessLoggingSettings for usage and error information. +// +// Returned Error Types: +// +// - InternalServerException +// There is an internal server error. +// +// - ResourceNotFoundException +// The resource cannot be found. +// +// - AccessDeniedException +// Access is denied. +// +// - ThrottlingException +// There is a throttling error. +// +// - ValidationException +// There is a validation error. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/GetUserAccessLoggingSettings +func (c *WorkSpacesWeb) GetUserAccessLoggingSettings(input *GetUserAccessLoggingSettingsInput) (*GetUserAccessLoggingSettingsOutput, error) { + req, out := c.GetUserAccessLoggingSettingsRequest(input) + return out, req.Send() +} + +// GetUserAccessLoggingSettingsWithContext is the same as GetUserAccessLoggingSettings with the addition of +// the ability to pass a context and additional request options. +// +// See GetUserAccessLoggingSettings 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 *WorkSpacesWeb) GetUserAccessLoggingSettingsWithContext(ctx aws.Context, input *GetUserAccessLoggingSettingsInput, opts ...request.Option) (*GetUserAccessLoggingSettingsOutput, error) { + req, out := c.GetUserAccessLoggingSettingsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetUserSettings = "GetUserSettings" // GetUserSettingsRequest generates a "aws/request.Request" representing the @@ -3583,36 +4047,36 @@ func (c *WorkSpacesWeb) ListTrustStoresPagesWithContext(ctx aws.Context, input * return p.Err() } -const opListUserSettings = "ListUserSettings" +const opListUserAccessLoggingSettings = "ListUserAccessLoggingSettings" -// ListUserSettingsRequest generates a "aws/request.Request" representing the -// client's request for the ListUserSettings operation. The "output" return +// ListUserAccessLoggingSettingsRequest generates a "aws/request.Request" representing the +// client's request for the ListUserAccessLoggingSettings 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 ListUserSettings for more information on using the ListUserSettings +// See ListUserAccessLoggingSettings for more information on using the ListUserAccessLoggingSettings // 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 ListUserSettingsRequest method. -// req, resp := client.ListUserSettingsRequest(params) +// // Example sending a request using the ListUserAccessLoggingSettingsRequest method. +// req, resp := client.ListUserAccessLoggingSettingsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/ListUserSettings -func (c *WorkSpacesWeb) ListUserSettingsRequest(input *ListUserSettingsInput) (req *request.Request, output *ListUserSettingsOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/ListUserAccessLoggingSettings +func (c *WorkSpacesWeb) ListUserAccessLoggingSettingsRequest(input *ListUserAccessLoggingSettingsInput) (req *request.Request, output *ListUserAccessLoggingSettingsOutput) { op := &request.Operation{ - Name: opListUserSettings, + Name: opListUserAccessLoggingSettings, HTTPMethod: "GET", - HTTPPath: "/userSettings", + HTTPPath: "/userAccessLoggingSettings", Paginator: &request.Paginator{ InputTokens: []string{"nextToken"}, OutputTokens: []string{"nextToken"}, @@ -3622,24 +4086,24 @@ func (c *WorkSpacesWeb) ListUserSettingsRequest(input *ListUserSettingsInput) (r } if input == nil { - input = &ListUserSettingsInput{} + input = &ListUserAccessLoggingSettingsInput{} } - output = &ListUserSettingsOutput{} + output = &ListUserAccessLoggingSettingsOutput{} req = c.newRequest(op, input, output) return } -// ListUserSettings API operation for Amazon WorkSpaces Web. +// ListUserAccessLoggingSettings API operation for Amazon WorkSpaces Web. // -// Retrieves a list of user settings. +// Retrieves a list of user access logging settings. // // 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 WorkSpaces Web's -// API operation ListUserSettings for usage and error information. +// API operation ListUserAccessLoggingSettings for usage and error information. // // Returned Error Types: // @@ -3655,64 +4119,64 @@ func (c *WorkSpacesWeb) ListUserSettingsRequest(input *ListUserSettingsInput) (r // - ValidationException // There is a validation error. // -// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/ListUserSettings -func (c *WorkSpacesWeb) ListUserSettings(input *ListUserSettingsInput) (*ListUserSettingsOutput, error) { - req, out := c.ListUserSettingsRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/ListUserAccessLoggingSettings +func (c *WorkSpacesWeb) ListUserAccessLoggingSettings(input *ListUserAccessLoggingSettingsInput) (*ListUserAccessLoggingSettingsOutput, error) { + req, out := c.ListUserAccessLoggingSettingsRequest(input) return out, req.Send() } -// ListUserSettingsWithContext is the same as ListUserSettings with the addition of +// ListUserAccessLoggingSettingsWithContext is the same as ListUserAccessLoggingSettings with the addition of // the ability to pass a context and additional request options. // -// See ListUserSettings for details on how to use this API operation. +// See ListUserAccessLoggingSettings 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 *WorkSpacesWeb) ListUserSettingsWithContext(ctx aws.Context, input *ListUserSettingsInput, opts ...request.Option) (*ListUserSettingsOutput, error) { - req, out := c.ListUserSettingsRequest(input) +func (c *WorkSpacesWeb) ListUserAccessLoggingSettingsWithContext(ctx aws.Context, input *ListUserAccessLoggingSettingsInput, opts ...request.Option) (*ListUserAccessLoggingSettingsOutput, error) { + req, out := c.ListUserAccessLoggingSettingsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } -// ListUserSettingsPages iterates over the pages of a ListUserSettings operation, +// ListUserAccessLoggingSettingsPages iterates over the pages of a ListUserAccessLoggingSettings operation, // calling the "fn" function with the response data for each page. To stop // iterating, return false from the fn function. // -// See ListUserSettings method for more information on how to use this operation. +// See ListUserAccessLoggingSettings 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 ListUserSettings operation. +// // Example iterating over at most 3 pages of a ListUserAccessLoggingSettings operation. // pageNum := 0 -// err := client.ListUserSettingsPages(params, -// func(page *workspacesweb.ListUserSettingsOutput, lastPage bool) bool { +// err := client.ListUserAccessLoggingSettingsPages(params, +// func(page *workspacesweb.ListUserAccessLoggingSettingsOutput, lastPage bool) bool { // pageNum++ // fmt.Println(page) // return pageNum <= 3 // }) -func (c *WorkSpacesWeb) ListUserSettingsPages(input *ListUserSettingsInput, fn func(*ListUserSettingsOutput, bool) bool) error { - return c.ListUserSettingsPagesWithContext(aws.BackgroundContext(), input, fn) +func (c *WorkSpacesWeb) ListUserAccessLoggingSettingsPages(input *ListUserAccessLoggingSettingsInput, fn func(*ListUserAccessLoggingSettingsOutput, bool) bool) error { + return c.ListUserAccessLoggingSettingsPagesWithContext(aws.BackgroundContext(), input, fn) } -// ListUserSettingsPagesWithContext same as ListUserSettingsPages except +// ListUserAccessLoggingSettingsPagesWithContext same as ListUserAccessLoggingSettingsPages 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 *WorkSpacesWeb) ListUserSettingsPagesWithContext(ctx aws.Context, input *ListUserSettingsInput, fn func(*ListUserSettingsOutput, bool) bool, opts ...request.Option) error { +func (c *WorkSpacesWeb) ListUserAccessLoggingSettingsPagesWithContext(ctx aws.Context, input *ListUserAccessLoggingSettingsInput, fn func(*ListUserAccessLoggingSettingsOutput, bool) bool, opts ...request.Option) error { p := request.Pagination{ NewRequest: func() (*request.Request, error) { - var inCpy *ListUserSettingsInput + var inCpy *ListUserAccessLoggingSettingsInput if input != nil { tmp := *input inCpy = &tmp } - req, _ := c.ListUserSettingsRequest(inCpy) + req, _ := c.ListUserAccessLoggingSettingsRequest(inCpy) req.SetContext(ctx) req.ApplyOptions(opts...) return req, nil @@ -3720,7 +4184,7 @@ func (c *WorkSpacesWeb) ListUserSettingsPagesWithContext(ctx aws.Context, input } for p.Next() { - if !fn(p.Page().(*ListUserSettingsOutput), !p.HasNextPage()) { + if !fn(p.Page().(*ListUserAccessLoggingSettingsOutput), !p.HasNextPage()) { break } } @@ -3728,67 +4192,69 @@ func (c *WorkSpacesWeb) ListUserSettingsPagesWithContext(ctx aws.Context, input return p.Err() } -const opTagResource = "TagResource" +const opListUserSettings = "ListUserSettings" -// TagResourceRequest generates a "aws/request.Request" representing the -// client's request for the TagResource operation. The "output" return +// ListUserSettingsRequest generates a "aws/request.Request" representing the +// client's request for the ListUserSettings 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 TagResource for more information on using the TagResource +// See ListUserSettings for more information on using the ListUserSettings // 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 TagResourceRequest method. -// req, resp := client.TagResourceRequest(params) +// // Example sending a request using the ListUserSettingsRequest method. +// req, resp := client.ListUserSettingsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // -// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/TagResource -func (c *WorkSpacesWeb) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) { +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/ListUserSettings +func (c *WorkSpacesWeb) ListUserSettingsRequest(input *ListUserSettingsInput) (req *request.Request, output *ListUserSettingsOutput) { op := &request.Operation{ - Name: opTagResource, - HTTPMethod: "POST", - HTTPPath: "/tags/{resourceArn+}", + Name: opListUserSettings, + HTTPMethod: "GET", + HTTPPath: "/userSettings", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, } if input == nil { - input = &TagResourceInput{} + input = &ListUserSettingsInput{} } - output = &TagResourceOutput{} + output = &ListUserSettingsOutput{} req = c.newRequest(op, input, output) - req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } -// TagResource API operation for Amazon WorkSpaces Web. +// ListUserSettings API operation for Amazon WorkSpaces Web. // -// Adds or overwrites one or more tags for the specified resource. +// Retrieves a list of user settings. // // 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 WorkSpaces Web's -// API operation TagResource for usage and error information. +// API operation ListUserSettings for usage and error information. // // Returned Error Types: // // - InternalServerException // There is an internal server error. // -// - ResourceNotFoundException -// The resource cannot be found. -// // - AccessDeniedException // Access is denied. // @@ -3798,26 +4264,169 @@ func (c *WorkSpacesWeb) TagResourceRequest(input *TagResourceInput) (req *reques // - ValidationException // There is a validation error. // -// - TooManyTagsException -// There are too many tags. -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/TagResource -func (c *WorkSpacesWeb) TagResource(input *TagResourceInput) (*TagResourceOutput, error) { - req, out := c.TagResourceRequest(input) +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/ListUserSettings +func (c *WorkSpacesWeb) ListUserSettings(input *ListUserSettingsInput) (*ListUserSettingsOutput, error) { + req, out := c.ListUserSettingsRequest(input) return out, req.Send() } -// TagResourceWithContext is the same as TagResource with the addition of +// ListUserSettingsWithContext is the same as ListUserSettings with the addition of // the ability to pass a context and additional request options. // -// See TagResource for details on how to use this API operation. +// See ListUserSettings 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 *WorkSpacesWeb) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) { - req, out := c.TagResourceRequest(input) +func (c *WorkSpacesWeb) ListUserSettingsWithContext(ctx aws.Context, input *ListUserSettingsInput, opts ...request.Option) (*ListUserSettingsOutput, error) { + req, out := c.ListUserSettingsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListUserSettingsPages iterates over the pages of a ListUserSettings operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListUserSettings 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 ListUserSettings operation. +// pageNum := 0 +// err := client.ListUserSettingsPages(params, +// func(page *workspacesweb.ListUserSettingsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +func (c *WorkSpacesWeb) ListUserSettingsPages(input *ListUserSettingsInput, fn func(*ListUserSettingsOutput, bool) bool) error { + return c.ListUserSettingsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListUserSettingsPagesWithContext same as ListUserSettingsPages 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 *WorkSpacesWeb) ListUserSettingsPagesWithContext(ctx aws.Context, input *ListUserSettingsInput, fn func(*ListUserSettingsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListUserSettingsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListUserSettingsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + for p.Next() { + if !fn(p.Page().(*ListUserSettingsOutput), !p.HasNextPage()) { + break + } + } + + return p.Err() +} + +const opTagResource = "TagResource" + +// TagResourceRequest generates a "aws/request.Request" representing the +// client's request for the TagResource 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 TagResource for more information on using the TagResource +// 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 TagResourceRequest method. +// req, resp := client.TagResourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/TagResource +func (c *WorkSpacesWeb) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) { + op := &request.Operation{ + Name: opTagResource, + HTTPMethod: "POST", + HTTPPath: "/tags/{resourceArn+}", + } + + if input == nil { + input = &TagResourceInput{} + } + + output = &TagResourceOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) + return +} + +// TagResource API operation for Amazon WorkSpaces Web. +// +// Adds or overwrites one or more tags for the specified 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 Amazon WorkSpaces Web's +// API operation TagResource for usage and error information. +// +// Returned Error Types: +// +// - InternalServerException +// There is an internal server error. +// +// - ResourceNotFoundException +// The resource cannot be found. +// +// - AccessDeniedException +// Access is denied. +// +// - ThrottlingException +// There is a throttling error. +// +// - ValidationException +// There is a validation error. +// +// - TooManyTagsException +// There are too many tags. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/TagResource +func (c *WorkSpacesWeb) TagResource(input *TagResourceInput) (*TagResourceOutput, error) { + req, out := c.TagResourceRequest(input) + return out, req.Send() +} + +// TagResourceWithContext is the same as TagResource with the addition of +// the ability to pass a context and additional request options. +// +// See TagResource 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 *WorkSpacesWeb) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) { + req, out := c.TagResourceRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() @@ -4373,6 +4982,97 @@ func (c *WorkSpacesWeb) UpdateTrustStoreWithContext(ctx aws.Context, input *Upda return out, req.Send() } +const opUpdateUserAccessLoggingSettings = "UpdateUserAccessLoggingSettings" + +// UpdateUserAccessLoggingSettingsRequest generates a "aws/request.Request" representing the +// client's request for the UpdateUserAccessLoggingSettings 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 UpdateUserAccessLoggingSettings for more information on using the UpdateUserAccessLoggingSettings +// 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 UpdateUserAccessLoggingSettingsRequest method. +// req, resp := client.UpdateUserAccessLoggingSettingsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/UpdateUserAccessLoggingSettings +func (c *WorkSpacesWeb) UpdateUserAccessLoggingSettingsRequest(input *UpdateUserAccessLoggingSettingsInput) (req *request.Request, output *UpdateUserAccessLoggingSettingsOutput) { + op := &request.Operation{ + Name: opUpdateUserAccessLoggingSettings, + HTTPMethod: "PATCH", + HTTPPath: "/userAccessLoggingSettings/{userAccessLoggingSettingsArn+}", + } + + if input == nil { + input = &UpdateUserAccessLoggingSettingsInput{} + } + + output = &UpdateUserAccessLoggingSettingsOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateUserAccessLoggingSettings API operation for Amazon WorkSpaces Web. +// +// Updates the user access logging settings. +// +// 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 WorkSpaces Web's +// API operation UpdateUserAccessLoggingSettings for usage and error information. +// +// Returned Error Types: +// +// - InternalServerException +// There is an internal server error. +// +// - ResourceNotFoundException +// The resource cannot be found. +// +// - AccessDeniedException +// Access is denied. +// +// - ThrottlingException +// There is a throttling error. +// +// - ValidationException +// There is a validation error. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-web-2020-07-08/UpdateUserAccessLoggingSettings +func (c *WorkSpacesWeb) UpdateUserAccessLoggingSettings(input *UpdateUserAccessLoggingSettingsInput) (*UpdateUserAccessLoggingSettingsOutput, error) { + req, out := c.UpdateUserAccessLoggingSettingsRequest(input) + return out, req.Send() +} + +// UpdateUserAccessLoggingSettingsWithContext is the same as UpdateUserAccessLoggingSettings with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateUserAccessLoggingSettings 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 *WorkSpacesWeb) UpdateUserAccessLoggingSettingsWithContext(ctx aws.Context, input *UpdateUserAccessLoggingSettingsInput, opts ...request.Option) (*UpdateUserAccessLoggingSettingsOutput, error) { + req, out := c.UpdateUserAccessLoggingSettingsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opUpdateUserSettings = "UpdateUserSettings" // UpdateUserSettingsRequest generates a "aws/request.Request" representing the @@ -4858,6 +5558,116 @@ func (s *AssociateTrustStoreOutput) SetTrustStoreArn(v string) *AssociateTrustSt return s } +type AssociateUserAccessLoggingSettingsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The ARN of the web portal. + // + // PortalArn is a required field + PortalArn *string `location:"uri" locationName:"portalArn" min:"20" type:"string" required:"true"` + + // The ARN of the user access logging settings. + // + // UserAccessLoggingSettingsArn is a required field + UserAccessLoggingSettingsArn *string `location:"querystring" locationName:"userAccessLoggingSettingsArn" min:"20" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AssociateUserAccessLoggingSettingsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AssociateUserAccessLoggingSettingsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AssociateUserAccessLoggingSettingsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AssociateUserAccessLoggingSettingsInput"} + if s.PortalArn == nil { + invalidParams.Add(request.NewErrParamRequired("PortalArn")) + } + if s.PortalArn != nil && len(*s.PortalArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("PortalArn", 20)) + } + if s.UserAccessLoggingSettingsArn == nil { + invalidParams.Add(request.NewErrParamRequired("UserAccessLoggingSettingsArn")) + } + if s.UserAccessLoggingSettingsArn != nil && len(*s.UserAccessLoggingSettingsArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("UserAccessLoggingSettingsArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetPortalArn sets the PortalArn field's value. +func (s *AssociateUserAccessLoggingSettingsInput) SetPortalArn(v string) *AssociateUserAccessLoggingSettingsInput { + s.PortalArn = &v + return s +} + +// SetUserAccessLoggingSettingsArn sets the UserAccessLoggingSettingsArn field's value. +func (s *AssociateUserAccessLoggingSettingsInput) SetUserAccessLoggingSettingsArn(v string) *AssociateUserAccessLoggingSettingsInput { + s.UserAccessLoggingSettingsArn = &v + return s +} + +type AssociateUserAccessLoggingSettingsOutput struct { + _ struct{} `type:"structure"` + + // The ARN of the web portal. + // + // PortalArn is a required field + PortalArn *string `locationName:"portalArn" min:"20" type:"string" required:"true"` + + // The ARN of the user access logging settings. + // + // UserAccessLoggingSettingsArn is a required field + UserAccessLoggingSettingsArn *string `locationName:"userAccessLoggingSettingsArn" min:"20" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AssociateUserAccessLoggingSettingsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s AssociateUserAccessLoggingSettingsOutput) GoString() string { + return s.String() +} + +// SetPortalArn sets the PortalArn field's value. +func (s *AssociateUserAccessLoggingSettingsOutput) SetPortalArn(v string) *AssociateUserAccessLoggingSettingsOutput { + s.PortalArn = &v + return s +} + +// SetUserAccessLoggingSettingsArn sets the UserAccessLoggingSettingsArn field's value. +func (s *AssociateUserAccessLoggingSettingsOutput) SetUserAccessLoggingSettingsArn(v string) *AssociateUserAccessLoggingSettingsOutput { + s.UserAccessLoggingSettingsArn = &v + return s +} + type AssociateUserSettingsInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -5865,11 +6675,134 @@ type CreatePortalOutput struct { // PortalArn is a required field PortalArn *string `locationName:"portalArn" min:"20" type:"string" required:"true"` - // The endpoint URL of the web portal that users access in order to start streaming - // sessions. + // The endpoint URL of the web portal that users access in order to start streaming + // sessions. + // + // PortalEndpoint is a required field + PortalEndpoint *string `locationName:"portalEndpoint" min:"1" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreatePortalOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreatePortalOutput) GoString() string { + return s.String() +} + +// SetPortalArn sets the PortalArn field's value. +func (s *CreatePortalOutput) SetPortalArn(v string) *CreatePortalOutput { + s.PortalArn = &v + return s +} + +// SetPortalEndpoint sets the PortalEndpoint field's value. +func (s *CreatePortalOutput) SetPortalEndpoint(v string) *CreatePortalOutput { + s.PortalEndpoint = &v + return s +} + +type CreateTrustStoreInput struct { + _ struct{} `type:"structure"` + + // A list of CA certificates to be added to the trust store. + // + // CertificateList is a required field + CertificateList [][]byte `locationName:"certificateList" type:"list" required:"true"` + + // A unique, case-sensitive identifier that you provide to ensure the idempotency + // of the request. Idempotency ensures that an API request completes only once. + // With an idempotent request, if the original request completes successfully, + // subsequent retries with the same client token returns the result from the + // original successful request. + // + // If you do not specify a client token, one is automatically generated by the + // AWS SDK. + ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"` + + // The tags to add to the trust store. A tag is a key-value pair. + Tags []*Tag `locationName:"tags" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateTrustStoreInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s CreateTrustStoreInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateTrustStoreInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateTrustStoreInput"} + if s.CertificateList == nil { + invalidParams.Add(request.NewErrParamRequired("CertificateList")) + } + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } + 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 +} + +// SetCertificateList sets the CertificateList field's value. +func (s *CreateTrustStoreInput) SetCertificateList(v [][]byte) *CreateTrustStoreInput { + s.CertificateList = v + return s +} + +// SetClientToken sets the ClientToken field's value. +func (s *CreateTrustStoreInput) SetClientToken(v string) *CreateTrustStoreInput { + s.ClientToken = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateTrustStoreInput) SetTags(v []*Tag) *CreateTrustStoreInput { + s.Tags = v + return s +} + +type CreateTrustStoreOutput struct { + _ struct{} `type:"structure"` + + // The ARN of the trust store. // - // PortalEndpoint is a required field - PortalEndpoint *string `locationName:"portalEndpoint" min:"1" type:"string" required:"true"` + // TrustStoreArn is a required field + TrustStoreArn *string `locationName:"trustStoreArn" min:"20" type:"string" required:"true"` } // String returns the string representation. @@ -5877,7 +6810,7 @@ type CreatePortalOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreatePortalOutput) String() string { +func (s CreateTrustStoreOutput) String() string { return awsutil.Prettify(s) } @@ -5886,30 +6819,19 @@ func (s CreatePortalOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreatePortalOutput) GoString() string { +func (s CreateTrustStoreOutput) GoString() string { return s.String() } -// SetPortalArn sets the PortalArn field's value. -func (s *CreatePortalOutput) SetPortalArn(v string) *CreatePortalOutput { - s.PortalArn = &v - return s -} - -// SetPortalEndpoint sets the PortalEndpoint field's value. -func (s *CreatePortalOutput) SetPortalEndpoint(v string) *CreatePortalOutput { - s.PortalEndpoint = &v +// SetTrustStoreArn sets the TrustStoreArn field's value. +func (s *CreateTrustStoreOutput) SetTrustStoreArn(v string) *CreateTrustStoreOutput { + s.TrustStoreArn = &v return s } -type CreateTrustStoreInput struct { +type CreateUserAccessLoggingSettingsInput struct { _ struct{} `type:"structure"` - // A list of CA certificates to be added to the trust store. - // - // CertificateList is a required field - CertificateList [][]byte `locationName:"certificateList" type:"list" required:"true"` - // A unique, case-sensitive identifier that you provide to ensure the idempotency // of the request. Idempotency ensures that an API request completes only once. // With an idempotent request, if the original request completes successfully, @@ -5920,7 +6842,12 @@ type CreateTrustStoreInput struct { // AWS SDK. ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"` - // The tags to add to the trust store. A tag is a key-value pair. + // The ARN of the Kinesis stream. + // + // KinesisStreamArn is a required field + KinesisStreamArn *string `locationName:"kinesisStreamArn" min:"20" type:"string" required:"true"` + + // The tags to add to the user settings resource. A tag is a key-value pair. Tags []*Tag `locationName:"tags" type:"list"` } @@ -5929,7 +6856,7 @@ type CreateTrustStoreInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateTrustStoreInput) String() string { +func (s CreateUserAccessLoggingSettingsInput) String() string { return awsutil.Prettify(s) } @@ -5938,19 +6865,22 @@ func (s CreateTrustStoreInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateTrustStoreInput) GoString() string { +func (s CreateUserAccessLoggingSettingsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *CreateTrustStoreInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "CreateTrustStoreInput"} - if s.CertificateList == nil { - invalidParams.Add(request.NewErrParamRequired("CertificateList")) - } +func (s *CreateUserAccessLoggingSettingsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateUserAccessLoggingSettingsInput"} if s.ClientToken != nil && len(*s.ClientToken) < 1 { invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) } + if s.KinesisStreamArn == nil { + invalidParams.Add(request.NewErrParamRequired("KinesisStreamArn")) + } + if s.KinesisStreamArn != nil && len(*s.KinesisStreamArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("KinesisStreamArn", 20)) + } if s.Tags != nil { for i, v := range s.Tags { if v == nil { @@ -5968,31 +6898,31 @@ func (s *CreateTrustStoreInput) Validate() error { return nil } -// SetCertificateList sets the CertificateList field's value. -func (s *CreateTrustStoreInput) SetCertificateList(v [][]byte) *CreateTrustStoreInput { - s.CertificateList = v +// SetClientToken sets the ClientToken field's value. +func (s *CreateUserAccessLoggingSettingsInput) SetClientToken(v string) *CreateUserAccessLoggingSettingsInput { + s.ClientToken = &v return s } -// SetClientToken sets the ClientToken field's value. -func (s *CreateTrustStoreInput) SetClientToken(v string) *CreateTrustStoreInput { - s.ClientToken = &v +// SetKinesisStreamArn sets the KinesisStreamArn field's value. +func (s *CreateUserAccessLoggingSettingsInput) SetKinesisStreamArn(v string) *CreateUserAccessLoggingSettingsInput { + s.KinesisStreamArn = &v return s } // SetTags sets the Tags field's value. -func (s *CreateTrustStoreInput) SetTags(v []*Tag) *CreateTrustStoreInput { +func (s *CreateUserAccessLoggingSettingsInput) SetTags(v []*Tag) *CreateUserAccessLoggingSettingsInput { s.Tags = v return s } -type CreateTrustStoreOutput struct { +type CreateUserAccessLoggingSettingsOutput struct { _ struct{} `type:"structure"` - // The ARN of the trust store. + // The ARN of the user access logging settings. // - // TrustStoreArn is a required field - TrustStoreArn *string `locationName:"trustStoreArn" min:"20" type:"string" required:"true"` + // UserAccessLoggingSettingsArn is a required field + UserAccessLoggingSettingsArn *string `locationName:"userAccessLoggingSettingsArn" min:"20" type:"string" required:"true"` } // String returns the string representation. @@ -6000,7 +6930,7 @@ type CreateTrustStoreOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateTrustStoreOutput) String() string { +func (s CreateUserAccessLoggingSettingsOutput) String() string { return awsutil.Prettify(s) } @@ -6009,13 +6939,13 @@ func (s CreateTrustStoreOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s CreateTrustStoreOutput) GoString() string { +func (s CreateUserAccessLoggingSettingsOutput) GoString() string { return s.String() } -// SetTrustStoreArn sets the TrustStoreArn field's value. -func (s *CreateTrustStoreOutput) SetTrustStoreArn(v string) *CreateTrustStoreOutput { - s.TrustStoreArn = &v +// SetUserAccessLoggingSettingsArn sets the UserAccessLoggingSettingsArn field's value. +func (s *CreateUserAccessLoggingSettingsOutput) SetUserAccessLoggingSettingsArn(v string) *CreateUserAccessLoggingSettingsOutput { + s.UserAccessLoggingSettingsArn = &v return s } @@ -6573,6 +7503,77 @@ func (s DeleteTrustStoreOutput) GoString() string { return s.String() } +type DeleteUserAccessLoggingSettingsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The ARN of the user access logging settings. + // + // UserAccessLoggingSettingsArn is a required field + UserAccessLoggingSettingsArn *string `location:"uri" locationName:"userAccessLoggingSettingsArn" min:"20" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteUserAccessLoggingSettingsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteUserAccessLoggingSettingsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteUserAccessLoggingSettingsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteUserAccessLoggingSettingsInput"} + if s.UserAccessLoggingSettingsArn == nil { + invalidParams.Add(request.NewErrParamRequired("UserAccessLoggingSettingsArn")) + } + if s.UserAccessLoggingSettingsArn != nil && len(*s.UserAccessLoggingSettingsArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("UserAccessLoggingSettingsArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetUserAccessLoggingSettingsArn sets the UserAccessLoggingSettingsArn field's value. +func (s *DeleteUserAccessLoggingSettingsInput) SetUserAccessLoggingSettingsArn(v string) *DeleteUserAccessLoggingSettingsInput { + s.UserAccessLoggingSettingsArn = &v + return s +} + +type DeleteUserAccessLoggingSettingsOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteUserAccessLoggingSettingsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DeleteUserAccessLoggingSettingsOutput) GoString() string { + return s.String() +} + type DeleteUserSettingsInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -6857,6 +7858,77 @@ func (s DisassociateTrustStoreOutput) GoString() string { return s.String() } +type DisassociateUserAccessLoggingSettingsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The ARN of the web portal. + // + // PortalArn is a required field + PortalArn *string `location:"uri" locationName:"portalArn" min:"20" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DisassociateUserAccessLoggingSettingsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DisassociateUserAccessLoggingSettingsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DisassociateUserAccessLoggingSettingsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DisassociateUserAccessLoggingSettingsInput"} + if s.PortalArn == nil { + invalidParams.Add(request.NewErrParamRequired("PortalArn")) + } + if s.PortalArn != nil && len(*s.PortalArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("PortalArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetPortalArn sets the PortalArn field's value. +func (s *DisassociateUserAccessLoggingSettingsInput) SetPortalArn(v string) *DisassociateUserAccessLoggingSettingsInput { + s.PortalArn = &v + return s +} + +type DisassociateUserAccessLoggingSettingsOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DisassociateUserAccessLoggingSettingsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s DisassociateUserAccessLoggingSettingsOutput) GoString() string { + return s.String() +} + type DisassociateUserSettingsInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -7448,10 +8520,90 @@ func (s *GetTrustStoreCertificateOutput) SetTrustStoreArn(v string) *GetTrustSto type GetTrustStoreInput struct { _ struct{} `type:"structure" nopayload:"true"` - // The ARN of the trust store. + // The ARN of the trust store. + // + // TrustStoreArn is a required field + TrustStoreArn *string `location:"uri" locationName:"trustStoreArn" min:"20" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetTrustStoreInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetTrustStoreInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetTrustStoreInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetTrustStoreInput"} + if s.TrustStoreArn == nil { + invalidParams.Add(request.NewErrParamRequired("TrustStoreArn")) + } + if s.TrustStoreArn != nil && len(*s.TrustStoreArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("TrustStoreArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetTrustStoreArn sets the TrustStoreArn field's value. +func (s *GetTrustStoreInput) SetTrustStoreArn(v string) *GetTrustStoreInput { + s.TrustStoreArn = &v + return s +} + +type GetTrustStoreOutput struct { + _ struct{} `type:"structure"` + + // The trust store. + TrustStore *TrustStore `locationName:"trustStore" type:"structure"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetTrustStoreOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetTrustStoreOutput) GoString() string { + return s.String() +} + +// SetTrustStore sets the TrustStore field's value. +func (s *GetTrustStoreOutput) SetTrustStore(v *TrustStore) *GetTrustStoreOutput { + s.TrustStore = v + return s +} + +type GetUserAccessLoggingSettingsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The ARN of the user access logging settings. // - // TrustStoreArn is a required field - TrustStoreArn *string `location:"uri" locationName:"trustStoreArn" min:"20" type:"string" required:"true"` + // UserAccessLoggingSettingsArn is a required field + UserAccessLoggingSettingsArn *string `location:"uri" locationName:"userAccessLoggingSettingsArn" min:"20" type:"string" required:"true"` } // String returns the string representation. @@ -7459,7 +8611,7 @@ type GetTrustStoreInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetTrustStoreInput) String() string { +func (s GetUserAccessLoggingSettingsInput) String() string { return awsutil.Prettify(s) } @@ -7468,18 +8620,18 @@ func (s GetTrustStoreInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetTrustStoreInput) GoString() string { +func (s GetUserAccessLoggingSettingsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *GetTrustStoreInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "GetTrustStoreInput"} - if s.TrustStoreArn == nil { - invalidParams.Add(request.NewErrParamRequired("TrustStoreArn")) +func (s *GetUserAccessLoggingSettingsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetUserAccessLoggingSettingsInput"} + if s.UserAccessLoggingSettingsArn == nil { + invalidParams.Add(request.NewErrParamRequired("UserAccessLoggingSettingsArn")) } - if s.TrustStoreArn != nil && len(*s.TrustStoreArn) < 20 { - invalidParams.Add(request.NewErrParamMinLen("TrustStoreArn", 20)) + if s.UserAccessLoggingSettingsArn != nil && len(*s.UserAccessLoggingSettingsArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("UserAccessLoggingSettingsArn", 20)) } if invalidParams.Len() > 0 { @@ -7488,17 +8640,17 @@ func (s *GetTrustStoreInput) Validate() error { return nil } -// SetTrustStoreArn sets the TrustStoreArn field's value. -func (s *GetTrustStoreInput) SetTrustStoreArn(v string) *GetTrustStoreInput { - s.TrustStoreArn = &v +// SetUserAccessLoggingSettingsArn sets the UserAccessLoggingSettingsArn field's value. +func (s *GetUserAccessLoggingSettingsInput) SetUserAccessLoggingSettingsArn(v string) *GetUserAccessLoggingSettingsInput { + s.UserAccessLoggingSettingsArn = &v return s } -type GetTrustStoreOutput struct { +type GetUserAccessLoggingSettingsOutput struct { _ struct{} `type:"structure"` - // The trust store. - TrustStore *TrustStore `locationName:"trustStore" type:"structure"` + // The user access logging settings. + UserAccessLoggingSettings *UserAccessLoggingSettings `locationName:"userAccessLoggingSettings" type:"structure"` } // String returns the string representation. @@ -7506,7 +8658,7 @@ type GetTrustStoreOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetTrustStoreOutput) String() string { +func (s GetUserAccessLoggingSettingsOutput) String() string { return awsutil.Prettify(s) } @@ -7515,13 +8667,13 @@ func (s GetTrustStoreOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s GetTrustStoreOutput) GoString() string { +func (s GetUserAccessLoggingSettingsOutput) GoString() string { return s.String() } -// SetTrustStore sets the TrustStore field's value. -func (s *GetTrustStoreOutput) SetTrustStore(v *TrustStore) *GetTrustStoreOutput { - s.TrustStore = v +// SetUserAccessLoggingSettings sets the UserAccessLoggingSettings field's value. +func (s *GetUserAccessLoggingSettingsOutput) SetUserAccessLoggingSettings(v *UserAccessLoggingSettings) *GetUserAccessLoggingSettingsOutput { + s.UserAccessLoggingSettings = v return s } @@ -8510,6 +9662,102 @@ func (s *ListTrustStoresOutput) SetTrustStores(v []*TrustStoreSummary) *ListTrus return s } +type ListUserAccessLoggingSettingsInput struct { + _ struct{} `type:"structure" nopayload:"true"` + + // The maximum number of results to be included in the next page. + MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` + + // The pagination token used to retrieve the next page of results for this operation. + NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListUserAccessLoggingSettingsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListUserAccessLoggingSettingsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListUserAccessLoggingSettingsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListUserAccessLoggingSettingsInput"} + if s.MaxResults != nil && *s.MaxResults < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) + } + 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 *ListUserAccessLoggingSettingsInput) SetMaxResults(v int64) *ListUserAccessLoggingSettingsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListUserAccessLoggingSettingsInput) SetNextToken(v string) *ListUserAccessLoggingSettingsInput { + s.NextToken = &v + return s +} + +type ListUserAccessLoggingSettingsOutput struct { + _ struct{} `type:"structure"` + + // The pagination token used to retrieve the next page of results for this operation. + NextToken *string `locationName:"nextToken" min:"1" type:"string"` + + // The user access logging settings. + UserAccessLoggingSettings []*UserAccessLoggingSettingsSummary `locationName:"userAccessLoggingSettings" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListUserAccessLoggingSettingsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ListUserAccessLoggingSettingsOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListUserAccessLoggingSettingsOutput) SetNextToken(v string) *ListUserAccessLoggingSettingsOutput { + s.NextToken = &v + return s +} + +// SetUserAccessLoggingSettings sets the UserAccessLoggingSettings field's value. +func (s *ListUserAccessLoggingSettingsOutput) SetUserAccessLoggingSettings(v []*UserAccessLoggingSettingsSummary) *ListUserAccessLoggingSettingsOutput { + s.UserAccessLoggingSettings = v + return s +} + type ListUserSettingsInput struct { _ struct{} `type:"structure" nopayload:"true"` @@ -8764,7 +10012,11 @@ type Portal struct { // The ARN of the trust store that is associated with the web portal. TrustStoreArn *string `locationName:"trustStoreArn" min:"20" type:"string"` - // The ARN of the trust store that is associated with the web portal. + // The ARN of the user access logging settings that is associated with the web + // portal. + UserAccessLoggingSettingsArn *string `locationName:"userAccessLoggingSettingsArn" min:"20" type:"string"` + + // The ARN of the user settings that is associated with the web portal. UserSettingsArn *string `locationName:"userSettingsArn" min:"20" type:"string"` } @@ -8852,6 +10104,12 @@ func (s *Portal) SetTrustStoreArn(v string) *Portal { return s } +// SetUserAccessLoggingSettingsArn sets the UserAccessLoggingSettingsArn field's value. +func (s *Portal) SetUserAccessLoggingSettingsArn(v string) *Portal { + s.UserAccessLoggingSettingsArn = &v + return s +} + // SetUserSettingsArn sets the UserSettingsArn field's value. func (s *Portal) SetUserSettingsArn(v string) *Portal { s.UserSettingsArn = &v @@ -8897,6 +10155,10 @@ type PortalSummary struct { // The ARN of the trust that is associated with this web portal. TrustStoreArn *string `locationName:"trustStoreArn" min:"20" type:"string"` + // The ARN of the user access logging settings that is associated with the web + // portal. + UserAccessLoggingSettingsArn *string `locationName:"userAccessLoggingSettingsArn" min:"20" type:"string"` + // The ARN of the user settings that is associated with the web portal. UserSettingsArn *string `locationName:"userSettingsArn" min:"20" type:"string"` } @@ -8979,6 +10241,12 @@ func (s *PortalSummary) SetTrustStoreArn(v string) *PortalSummary { return s } +// SetUserAccessLoggingSettingsArn sets the UserAccessLoggingSettingsArn field's value. +func (s *PortalSummary) SetUserAccessLoggingSettingsArn(v string) *PortalSummary { + s.UserAccessLoggingSettingsArn = &v + return s +} + // SetUserSettingsArn sets the UserSettingsArn field's value. func (s *PortalSummary) SetUserSettingsArn(v string) *PortalSummary { s.UserSettingsArn = &v @@ -10250,6 +11518,119 @@ func (s *UpdateTrustStoreOutput) SetTrustStoreArn(v string) *UpdateTrustStoreOut return s } +type UpdateUserAccessLoggingSettingsInput struct { + _ struct{} `type:"structure"` + + // A unique, case-sensitive identifier that you provide to ensure the idempotency + // of the request. Idempotency ensures that an API request completes only once. + // With an idempotent request, if the original request completes successfully, + // subsequent retries with the same client token return the result from the + // original successful request. + // + // If you do not specify a client token, one is automatically generated by the + // AWS SDK. + ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"` + + // The ARN of the Kinesis stream. + KinesisStreamArn *string `locationName:"kinesisStreamArn" min:"20" type:"string"` + + // The ARN of the user access logging settings. + // + // UserAccessLoggingSettingsArn is a required field + UserAccessLoggingSettingsArn *string `location:"uri" locationName:"userAccessLoggingSettingsArn" min:"20" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateUserAccessLoggingSettingsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateUserAccessLoggingSettingsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateUserAccessLoggingSettingsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateUserAccessLoggingSettingsInput"} + if s.ClientToken != nil && len(*s.ClientToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) + } + if s.KinesisStreamArn != nil && len(*s.KinesisStreamArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("KinesisStreamArn", 20)) + } + if s.UserAccessLoggingSettingsArn == nil { + invalidParams.Add(request.NewErrParamRequired("UserAccessLoggingSettingsArn")) + } + if s.UserAccessLoggingSettingsArn != nil && len(*s.UserAccessLoggingSettingsArn) < 20 { + invalidParams.Add(request.NewErrParamMinLen("UserAccessLoggingSettingsArn", 20)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClientToken sets the ClientToken field's value. +func (s *UpdateUserAccessLoggingSettingsInput) SetClientToken(v string) *UpdateUserAccessLoggingSettingsInput { + s.ClientToken = &v + return s +} + +// SetKinesisStreamArn sets the KinesisStreamArn field's value. +func (s *UpdateUserAccessLoggingSettingsInput) SetKinesisStreamArn(v string) *UpdateUserAccessLoggingSettingsInput { + s.KinesisStreamArn = &v + return s +} + +// SetUserAccessLoggingSettingsArn sets the UserAccessLoggingSettingsArn field's value. +func (s *UpdateUserAccessLoggingSettingsInput) SetUserAccessLoggingSettingsArn(v string) *UpdateUserAccessLoggingSettingsInput { + s.UserAccessLoggingSettingsArn = &v + return s +} + +type UpdateUserAccessLoggingSettingsOutput struct { + _ struct{} `type:"structure"` + + // The user access logging settings. + // + // UserAccessLoggingSettings is a required field + UserAccessLoggingSettings *UserAccessLoggingSettings `locationName:"userAccessLoggingSettings" type:"structure" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateUserAccessLoggingSettingsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UpdateUserAccessLoggingSettingsOutput) GoString() string { + return s.String() +} + +// SetUserAccessLoggingSettings sets the UserAccessLoggingSettings field's value. +func (s *UpdateUserAccessLoggingSettingsOutput) SetUserAccessLoggingSettings(v *UserAccessLoggingSettings) *UpdateUserAccessLoggingSettingsOutput { + s.UserAccessLoggingSettings = v + return s +} + type UpdateUserSettingsInput struct { _ struct{} `type:"structure"` @@ -10422,6 +11803,101 @@ func (s *UpdateUserSettingsOutput) SetUserSettings(v *UserSettings) *UpdateUserS return s } +// A user access logging settings resource that can be associated with a web +// portal. +type UserAccessLoggingSettings struct { + _ struct{} `type:"structure"` + + // A list of web portal ARNs that this user access logging settings is associated + // with. + AssociatedPortalArns []*string `locationName:"associatedPortalArns" type:"list"` + + // The ARN of the Kinesis stream. + KinesisStreamArn *string `locationName:"kinesisStreamArn" min:"20" type:"string"` + + // The ARN of the user access logging settings. + // + // UserAccessLoggingSettingsArn is a required field + UserAccessLoggingSettingsArn *string `locationName:"userAccessLoggingSettingsArn" min:"20" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UserAccessLoggingSettings) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UserAccessLoggingSettings) GoString() string { + return s.String() +} + +// SetAssociatedPortalArns sets the AssociatedPortalArns field's value. +func (s *UserAccessLoggingSettings) SetAssociatedPortalArns(v []*string) *UserAccessLoggingSettings { + s.AssociatedPortalArns = v + return s +} + +// SetKinesisStreamArn sets the KinesisStreamArn field's value. +func (s *UserAccessLoggingSettings) SetKinesisStreamArn(v string) *UserAccessLoggingSettings { + s.KinesisStreamArn = &v + return s +} + +// SetUserAccessLoggingSettingsArn sets the UserAccessLoggingSettingsArn field's value. +func (s *UserAccessLoggingSettings) SetUserAccessLoggingSettingsArn(v string) *UserAccessLoggingSettings { + s.UserAccessLoggingSettingsArn = &v + return s +} + +// The summary of user access logging settings. +type UserAccessLoggingSettingsSummary struct { + _ struct{} `type:"structure"` + + // The ARN of the Kinesis stream. + KinesisStreamArn *string `locationName:"kinesisStreamArn" min:"20" type:"string"` + + // The ARN of the user access logging settings. + UserAccessLoggingSettingsArn *string `locationName:"userAccessLoggingSettingsArn" min:"20" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UserAccessLoggingSettingsSummary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s UserAccessLoggingSettingsSummary) GoString() string { + return s.String() +} + +// SetKinesisStreamArn sets the KinesisStreamArn field's value. +func (s *UserAccessLoggingSettingsSummary) SetKinesisStreamArn(v string) *UserAccessLoggingSettingsSummary { + s.KinesisStreamArn = &v + return s +} + +// SetUserAccessLoggingSettingsArn sets the UserAccessLoggingSettingsArn field's value. +func (s *UserAccessLoggingSettingsSummary) SetUserAccessLoggingSettingsArn(v string) *UserAccessLoggingSettingsSummary { + s.UserAccessLoggingSettingsArn = &v + return s +} + // A user settings resource that can be associated with a web portal. Once associated // with a web portal, user settings control how users can transfer data between // a streaming session and the their local devices. diff --git a/service/workspacesweb/workspaceswebiface/interface.go b/service/workspacesweb/workspaceswebiface/interface.go index 04dc4601c2..fccb3b72e2 100644 --- a/service/workspacesweb/workspaceswebiface/interface.go +++ b/service/workspacesweb/workspaceswebiface/interface.go @@ -72,6 +72,10 @@ type WorkSpacesWebAPI interface { AssociateTrustStoreWithContext(aws.Context, *workspacesweb.AssociateTrustStoreInput, ...request.Option) (*workspacesweb.AssociateTrustStoreOutput, error) AssociateTrustStoreRequest(*workspacesweb.AssociateTrustStoreInput) (*request.Request, *workspacesweb.AssociateTrustStoreOutput) + AssociateUserAccessLoggingSettings(*workspacesweb.AssociateUserAccessLoggingSettingsInput) (*workspacesweb.AssociateUserAccessLoggingSettingsOutput, error) + AssociateUserAccessLoggingSettingsWithContext(aws.Context, *workspacesweb.AssociateUserAccessLoggingSettingsInput, ...request.Option) (*workspacesweb.AssociateUserAccessLoggingSettingsOutput, error) + AssociateUserAccessLoggingSettingsRequest(*workspacesweb.AssociateUserAccessLoggingSettingsInput) (*request.Request, *workspacesweb.AssociateUserAccessLoggingSettingsOutput) + AssociateUserSettings(*workspacesweb.AssociateUserSettingsInput) (*workspacesweb.AssociateUserSettingsOutput, error) AssociateUserSettingsWithContext(aws.Context, *workspacesweb.AssociateUserSettingsInput, ...request.Option) (*workspacesweb.AssociateUserSettingsOutput, error) AssociateUserSettingsRequest(*workspacesweb.AssociateUserSettingsInput) (*request.Request, *workspacesweb.AssociateUserSettingsOutput) @@ -96,6 +100,10 @@ type WorkSpacesWebAPI interface { CreateTrustStoreWithContext(aws.Context, *workspacesweb.CreateTrustStoreInput, ...request.Option) (*workspacesweb.CreateTrustStoreOutput, error) CreateTrustStoreRequest(*workspacesweb.CreateTrustStoreInput) (*request.Request, *workspacesweb.CreateTrustStoreOutput) + CreateUserAccessLoggingSettings(*workspacesweb.CreateUserAccessLoggingSettingsInput) (*workspacesweb.CreateUserAccessLoggingSettingsOutput, error) + CreateUserAccessLoggingSettingsWithContext(aws.Context, *workspacesweb.CreateUserAccessLoggingSettingsInput, ...request.Option) (*workspacesweb.CreateUserAccessLoggingSettingsOutput, error) + CreateUserAccessLoggingSettingsRequest(*workspacesweb.CreateUserAccessLoggingSettingsInput) (*request.Request, *workspacesweb.CreateUserAccessLoggingSettingsOutput) + CreateUserSettings(*workspacesweb.CreateUserSettingsInput) (*workspacesweb.CreateUserSettingsOutput, error) CreateUserSettingsWithContext(aws.Context, *workspacesweb.CreateUserSettingsInput, ...request.Option) (*workspacesweb.CreateUserSettingsOutput, error) CreateUserSettingsRequest(*workspacesweb.CreateUserSettingsInput) (*request.Request, *workspacesweb.CreateUserSettingsOutput) @@ -120,6 +128,10 @@ type WorkSpacesWebAPI interface { DeleteTrustStoreWithContext(aws.Context, *workspacesweb.DeleteTrustStoreInput, ...request.Option) (*workspacesweb.DeleteTrustStoreOutput, error) DeleteTrustStoreRequest(*workspacesweb.DeleteTrustStoreInput) (*request.Request, *workspacesweb.DeleteTrustStoreOutput) + DeleteUserAccessLoggingSettings(*workspacesweb.DeleteUserAccessLoggingSettingsInput) (*workspacesweb.DeleteUserAccessLoggingSettingsOutput, error) + DeleteUserAccessLoggingSettingsWithContext(aws.Context, *workspacesweb.DeleteUserAccessLoggingSettingsInput, ...request.Option) (*workspacesweb.DeleteUserAccessLoggingSettingsOutput, error) + DeleteUserAccessLoggingSettingsRequest(*workspacesweb.DeleteUserAccessLoggingSettingsInput) (*request.Request, *workspacesweb.DeleteUserAccessLoggingSettingsOutput) + DeleteUserSettings(*workspacesweb.DeleteUserSettingsInput) (*workspacesweb.DeleteUserSettingsOutput, error) DeleteUserSettingsWithContext(aws.Context, *workspacesweb.DeleteUserSettingsInput, ...request.Option) (*workspacesweb.DeleteUserSettingsOutput, error) DeleteUserSettingsRequest(*workspacesweb.DeleteUserSettingsInput) (*request.Request, *workspacesweb.DeleteUserSettingsOutput) @@ -136,6 +148,10 @@ type WorkSpacesWebAPI interface { DisassociateTrustStoreWithContext(aws.Context, *workspacesweb.DisassociateTrustStoreInput, ...request.Option) (*workspacesweb.DisassociateTrustStoreOutput, error) DisassociateTrustStoreRequest(*workspacesweb.DisassociateTrustStoreInput) (*request.Request, *workspacesweb.DisassociateTrustStoreOutput) + DisassociateUserAccessLoggingSettings(*workspacesweb.DisassociateUserAccessLoggingSettingsInput) (*workspacesweb.DisassociateUserAccessLoggingSettingsOutput, error) + DisassociateUserAccessLoggingSettingsWithContext(aws.Context, *workspacesweb.DisassociateUserAccessLoggingSettingsInput, ...request.Option) (*workspacesweb.DisassociateUserAccessLoggingSettingsOutput, error) + DisassociateUserAccessLoggingSettingsRequest(*workspacesweb.DisassociateUserAccessLoggingSettingsInput) (*request.Request, *workspacesweb.DisassociateUserAccessLoggingSettingsOutput) + DisassociateUserSettings(*workspacesweb.DisassociateUserSettingsInput) (*workspacesweb.DisassociateUserSettingsOutput, error) DisassociateUserSettingsWithContext(aws.Context, *workspacesweb.DisassociateUserSettingsInput, ...request.Option) (*workspacesweb.DisassociateUserSettingsOutput, error) DisassociateUserSettingsRequest(*workspacesweb.DisassociateUserSettingsInput) (*request.Request, *workspacesweb.DisassociateUserSettingsOutput) @@ -168,6 +184,10 @@ type WorkSpacesWebAPI interface { GetTrustStoreCertificateWithContext(aws.Context, *workspacesweb.GetTrustStoreCertificateInput, ...request.Option) (*workspacesweb.GetTrustStoreCertificateOutput, error) GetTrustStoreCertificateRequest(*workspacesweb.GetTrustStoreCertificateInput) (*request.Request, *workspacesweb.GetTrustStoreCertificateOutput) + GetUserAccessLoggingSettings(*workspacesweb.GetUserAccessLoggingSettingsInput) (*workspacesweb.GetUserAccessLoggingSettingsOutput, error) + GetUserAccessLoggingSettingsWithContext(aws.Context, *workspacesweb.GetUserAccessLoggingSettingsInput, ...request.Option) (*workspacesweb.GetUserAccessLoggingSettingsOutput, error) + GetUserAccessLoggingSettingsRequest(*workspacesweb.GetUserAccessLoggingSettingsInput) (*request.Request, *workspacesweb.GetUserAccessLoggingSettingsOutput) + GetUserSettings(*workspacesweb.GetUserSettingsInput) (*workspacesweb.GetUserSettingsOutput, error) GetUserSettingsWithContext(aws.Context, *workspacesweb.GetUserSettingsInput, ...request.Option) (*workspacesweb.GetUserSettingsOutput, error) GetUserSettingsRequest(*workspacesweb.GetUserSettingsInput) (*request.Request, *workspacesweb.GetUserSettingsOutput) @@ -218,6 +238,13 @@ type WorkSpacesWebAPI interface { ListTrustStoresPages(*workspacesweb.ListTrustStoresInput, func(*workspacesweb.ListTrustStoresOutput, bool) bool) error ListTrustStoresPagesWithContext(aws.Context, *workspacesweb.ListTrustStoresInput, func(*workspacesweb.ListTrustStoresOutput, bool) bool, ...request.Option) error + ListUserAccessLoggingSettings(*workspacesweb.ListUserAccessLoggingSettingsInput) (*workspacesweb.ListUserAccessLoggingSettingsOutput, error) + ListUserAccessLoggingSettingsWithContext(aws.Context, *workspacesweb.ListUserAccessLoggingSettingsInput, ...request.Option) (*workspacesweb.ListUserAccessLoggingSettingsOutput, error) + ListUserAccessLoggingSettingsRequest(*workspacesweb.ListUserAccessLoggingSettingsInput) (*request.Request, *workspacesweb.ListUserAccessLoggingSettingsOutput) + + ListUserAccessLoggingSettingsPages(*workspacesweb.ListUserAccessLoggingSettingsInput, func(*workspacesweb.ListUserAccessLoggingSettingsOutput, bool) bool) error + ListUserAccessLoggingSettingsPagesWithContext(aws.Context, *workspacesweb.ListUserAccessLoggingSettingsInput, func(*workspacesweb.ListUserAccessLoggingSettingsOutput, bool) bool, ...request.Option) error + ListUserSettings(*workspacesweb.ListUserSettingsInput) (*workspacesweb.ListUserSettingsOutput, error) ListUserSettingsWithContext(aws.Context, *workspacesweb.ListUserSettingsInput, ...request.Option) (*workspacesweb.ListUserSettingsOutput, error) ListUserSettingsRequest(*workspacesweb.ListUserSettingsInput) (*request.Request, *workspacesweb.ListUserSettingsOutput) @@ -253,6 +280,10 @@ type WorkSpacesWebAPI interface { UpdateTrustStoreWithContext(aws.Context, *workspacesweb.UpdateTrustStoreInput, ...request.Option) (*workspacesweb.UpdateTrustStoreOutput, error) UpdateTrustStoreRequest(*workspacesweb.UpdateTrustStoreInput) (*request.Request, *workspacesweb.UpdateTrustStoreOutput) + UpdateUserAccessLoggingSettings(*workspacesweb.UpdateUserAccessLoggingSettingsInput) (*workspacesweb.UpdateUserAccessLoggingSettingsOutput, error) + UpdateUserAccessLoggingSettingsWithContext(aws.Context, *workspacesweb.UpdateUserAccessLoggingSettingsInput, ...request.Option) (*workspacesweb.UpdateUserAccessLoggingSettingsOutput, error) + UpdateUserAccessLoggingSettingsRequest(*workspacesweb.UpdateUserAccessLoggingSettingsInput) (*request.Request, *workspacesweb.UpdateUserAccessLoggingSettingsOutput) + UpdateUserSettings(*workspacesweb.UpdateUserSettingsInput) (*workspacesweb.UpdateUserSettingsOutput, error) UpdateUserSettingsWithContext(aws.Context, *workspacesweb.UpdateUserSettingsInput, ...request.Option) (*workspacesweb.UpdateUserSettingsOutput, error) UpdateUserSettingsRequest(*workspacesweb.UpdateUserSettingsInput) (*request.Request, *workspacesweb.UpdateUserSettingsOutput)